【问题标题】:Hibernate criteria from multiple independent tables来自多个独立表的休眠条件
【发布时间】:2023-03-18 18:05:01
【问题描述】:

在项目中,我有多个具有相同结构的表(列的数量和类型)。这些表是独立的,我需要休眠标准对象,它可以为我提供所有表中的所有值。类似于 SQL 的东西:

 select * from TABLE1, TABLE2, TABLE3;

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

【问题讨论】:

    标签: hibernate criteria


    【解决方案1】:

    您可以使用来自多个根的构建条件查询,来自文档

    根定义了所有连接、路径和属性的基础 在查询中可用。根始终是实体类型。根是 通过方法重载定义并添加到标准 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 ) );
    

    【讨论】:

    • 这很好,但我们使用的是较旧的 org.hibernate.Criteria API。没有机会在那里做同样的事情?
    猜你喜欢
    • 1970-01-01
    • 2016-03-24
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    相关资源
    最近更新 更多