gpt4 book ai didi

java - 带列表的 HibernateTemplate 查询

转载 作者:行者123 更新时间:2023-12-01 09:32:25 26 4
gpt4 key购买 nike

Hibernate 初学者,这可能是一个基础问题。

假设我有两个 hibernate 对象:EmployeeDepartment在一对多的关系中。一个部门可以有多个Employees .

我有一个 ListDepartment对象并想要检索所有 Employees在那些部门。例如,在 SQL 中很容易:

Select * from Employee where Employee.deptID in (1, 2, 6, 19);

HibernateTemplate 中执行此操作的正确方法是什么?寻找?我看到的示例似乎冗长得无可救药,涉及创建 departmentIDs 的列表然后覆盖 executeFind() .我可以直接使用 List<Department> 执行此操作吗?而不是创建对象 ID 列表?

//Verbose example
List Employees = getHibernateTemplate().executeFind(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(
"select employee" +
"from employee e " +
"where e.deptID in (:ids) "
);
query.setParameterList("ids", ids);
return query.list();
}
});

最佳答案

假设您在 Employee 中有一个部门属性,您可以运行此查询:

List<Departement> departments = ...

List Employees = getHibernateTemplate().executeFind(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(
"select employee" +
"from employee e " +
"where e.department in (:departments) "
);
query.setParameterList("departments", departments);
return query.list();
}
});

关于java - 带列表的 HibernateTemplate 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27504356/

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