来自多个独立表的Hibernate标准

时间:2015-03-05 10:13:27

标签: hibernate criteria

在项目中,我有多个具有相同结构的表(列的数量和类型)。这个表是独立的,我需要hibernate标准对象,它给我所有表中的所有值。像SQL一样:

 select * from TABLE1, TABLE2, TABLE3;

我知道我可以在列表等中合并多个标准的结果但是我需要一个Criteria对象,因为我们稍后在很多地方的代码中使用它。

1 个答案:

答案 0 :(得分:4)

您可以使用来自文档

的多个根的构建条件查询
  

Roots定义所有连接,路径和属性的基础   在查询中可用。根始终是实体类型。根是   通过重载的方法定义并添加到标准中   javax.persistence.criteria.CriteriaQuery

docs

中添加的示例
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 ) );