Hibernate 将 SQL 转换为 Criteria

发布于 2024-07-10 12:00:42 字数 270 浏览 12 评论 0原文

我想使用 Criteria 进行 SQL 查询。 我有 3 个表“home”、“person”和第三个表“liveIn”,用于 home 和 person 之间的通信。

我的sql查询是 “选择home.id 来自家、人、居住 其中 home.country = '日本' 和 person.id = '15' 和 liveIn.Homeid = home.id 和 liveIn.PersonId = person.id"

对任何人有一点帮助吗?

I 'd like to use Criteria for my SQL query.
I have 3 tables "home", "person" and a third table "liveIn" for correspondance between home and person.

My sql query is
"select home.id
from home, person, liveIn
where home.country = 'Japan'
and person.id = '15'
and liveIn.Homeid = home.id
and liveIn.PersonId = person.id"

A little help anybody ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

将军与妓 2024-07-17 12:00:42

假设您将表映射为实体 Home、Person 和 LiveIn,那么类似这样的操作可能会起作用:

          session.createCriteria(Home.class)
                .add(Restrictions.eq("country", "Japan"))
                .createAlias("person", "p")
                .add(Restrictions.eq("p.id", "15"))
                .list();

Assuming you have the tables mapped as entities Home, Person and LiveIn then something like this might work :

          session.createCriteria(Home.class)
                .add(Restrictions.eq("country", "Japan"))
                .createAlias("person", "p")
                .add(Restrictions.eq("p.id", "15"))
                .list();
同展鸳鸯锦 2024-07-17 12:00:42

如果您有 person 对象的对象引用,则可以在条件查询中使用它,而不必搜索 person 的 id。

例如:

public List<Home> getHomesForPerson(Person thePerson){

    List<Home> homes = session.createCriteria(Home.class)
                          .add(Restrictions.eq("country", "Japan")
                          .add(Restrictions.eq("person", thePerson)
                          .list();
    return homes;
}

If you have the object reference of the person object, you could use that in your criteria query instead of having to search for the id of the person.

For example:

public List<Home> getHomesForPerson(Person thePerson){

    List<Home> homes = session.createCriteria(Home.class)
                          .add(Restrictions.eq("country", "Japan")
                          .add(Restrictions.eq("person", thePerson)
                          .list();
    return homes;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文