将ID列表转换为具有ORM的对象列表,如Hibernate

时间:2011-02-01 21:12:15

标签: hibernate orm collections

在Web应用程序中,通常在选择集合的元素时向服务器发送ID列表。可能有一个代表课程的HTML表单,它将包含一个学期的所有学生的列表。通过选择一些学生,他们将与课程相关联。服务器将收到学生ID列表。

将此ID列表(数据库中的主键)转换为具有像Hibernate这样的ORM的域对象列表的最佳做法是什么?我想避免再次为每个域类编写相同的代码。 Grails做了类似的事情(但我不知道如何)。

1 个答案:

答案 0 :(得分:4)

所以我们有一个像这样的方法的通用DAO

public <T extends IDomainObject> List<T> getAll(Class<T> type, List<Integer> ids) {
    return (List<T>) session.createCriteria(type).add(Restrictions.in("id", ids).list();
}

按照惯例,我们所有的域模型对象都实现了IDomainObject,并且有一个名为id的主键字段。