Hibernate将SQL转换为Criteria

时间:2008-11-26 12:38:11

标签: sql hibernate criteria transform

我想在我的SQL查询中使用Criteria。 我有3个表“家”,“人”和第三个表“liveIn”,用于家庭和人之间的对应。

我的SQL查询是 “选择home.id 从家里,人,生活 home.country ='日本' 和person.id = '15' 和liveIn.Homeid = home.id 和liveIn.PersonId = person.id“

对任何人有点帮助?​​

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

如果你有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;
}