1

我有一个学校表和教室表,其中有学校表的外键。我想获得容量为 40 且学校名称为“示例”的教室。这是我的通用 getAll 方法。我想修改这个方法来加入 2 个表。问题是该方法仍然必须保持通用。

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

1 回答 1

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);
于 2014-01-11T09:28:34.897 回答