【发布时间】:2014-12-16 12:09:11
【问题描述】:
这里是Hibernate初学者,这可能是一个基本问题。
假设我有两个休眠对象:Employee 和 Department 处于一对多关系中。一个部门可以有多个Employees。
我有一个List 的Department 对象,并且想要检索这些部门中的所有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();
}
});
【问题讨论】:
标签: java sql spring hibernate jpa