我想在我的SQL查询中使用Criteria。 我有3个表“家”,“人”和第三个表“liveIn”,用于家庭和人之间的对应。
我的SQL查询是 “选择home.id 从家里,人,生活 home.country ='日本' 和person.id = '15' 和liveIn.Homeid = home.id 和liveIn.PersonId = person.id“
对任何人有点帮助?
答案 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;
}