在项目中,我有多个具有相同结构的表(列的数量和类型)。这个表是独立的,我需要hibernate标准对象,它给我所有表中的所有值。像SQL一样:
select * from TABLE1, TABLE2, TABLE3;
我知道我可以在列表等中合并多个标准的结果但是我需要一个Criteria对象,因为我们稍后在很多地方的代码中使用它。
答案 0 :(得分:4)
您可以使用来自文档
的多个根的构建条件查询中添加的示例Roots定义所有连接,路径和属性的基础 在查询中可用。根始终是实体类型。根是 通过重载的方法定义并添加到标准中 javax.persistence.criteria.CriteriaQuery
CriteriaQuery query = builder.createQuery();
Root<Men> men = query.from( Men.class );
Root<Women> women = query.from( Women.class );
Predicate menRestriction = builder.and(
builder.equal( men.get( Men_.gender ), Gender.MALE ),
builder.equal( men.get( Men_.relationshipStatus ), RelationshipStatus.SINGLE )
);
Predicate womenRestriction = builder.and(
builder.equal( women.get( Women_.gender ), Gender.FEMALE ),
builder.equal( women.get( Women_.relationshipStatus ), RelationshipStatus.SINGLE )
);
query.where( builder.and( menRestriction, womenRestriction ) );