[英]Hibernate Criteria Example query join
我有一個名為getByTemplate的dao方法。 有兩個表,分別是學生和學校。 這些表之間存在一對多關系。 我想做的是
Student student = new Student();
student.setSchool(mySchool);
myDao.getByTemplate(student);
但是問題是Hibernate在查詢時會忽略對象。 因此,此方法從db返回所有學生。 有什么方法可以使用示例模型來執行此查詢嗎?
@Transactional(readOnly = true)
public <T> List<T> getByTemplate(T templateEntity) {
Criteria criteria = getCurrentSession().createCriteria(templateEntity.getClass());
criteria.add(Example.create(templateEntity));
return criteria.list();
}
您應該創建Examples和兩個createCriteria調用,以同時使用Student和School:
@Transactional(readOnly = true)
public <T,U> List<T> getByTemplate(T templateEntity1, U templateEntity2) {
Criteria criteria = getCurrentSession()
.createCriteria(templateEntity1.getClass()).add(Example.create(templateEntity1))
.createCriteria(templateEntity2.getClass()).add(Example.create(templateEntity2));
return criteria.list();
}
您可以通過以下方式調用它:
myDao.getByTemplate(student, mySchool);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.