我有一张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();
}
答案 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);