gpt4 book ai didi

java - Hibernate Criteria 查询连接示例

转载 作者:行者123 更新时间:2023-12-01 04:37:00 24 4
gpt4 key购买 nike

我有一个名为 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();
}

最佳答案

您应该创建示例和两个 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);

关于java - Hibernate Criteria 查询连接示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17193745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com