如何使用Hibernate Criteria Query连接表

时间:2013-05-31 12:19:52

标签: database hibernate hibernate-criteria

我有一张School表和Classroom表,它有School表的外键。我想让教室的资产是40岁,学校名称是"例如"。这是我的通用getAll方法。我想修改此方法以连接2个表。问题是该方法仍然必须保持通用。

public <T> List<T> getAll(T genericEntity) {
    Criteria criteria = getCurrentSession().createCriteria(genericEntity.getClass());
    criteria.add(Example.create(genericEntity));
    return criteria.list();
}

1 个答案:

答案 0 :(得分:1)

您应该将两个对象添加到参数列表中:

public <T,U> List<T> getAll(T genericEntity1, U genericEntity2) {
    Criteria criteria = getCurrentSession()
        .createCriteria(genericEntity1.getClass()).add(Example.create(genericEntity1))
        .createCriteria(genericEntity2.getClass()).add(Example.create(genericEntity2));
    return criteria.list();
}

您可以通过以下方式调用它:

getAll(classroom, school);