簡體   English   中英

Hibernate Criteria示例查詢聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM