【问题标题】:CriteriaQuery Using Hibernate 3.6.10使用 Hibernate 3.6.10 的 CriteriaQuery
【发布时间】:2019-03-31 06:45:24
【问题描述】:

我想使用CriteriaBuilder 创建一个查询。 我正在使用hibernate 3.6.10

查询的结构类似于下面 - How to join Multiple tables using hibernate criteria where entity relationship is not direct?

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery query = cb.createQuery(/* Your combined target type, e.g. MyQueriedBuildDetails.class, containing buildNumber, duration, code health, etc.*/);

Root<BuildDetails> buildDetailsTable = query.from(BuildDetails.class);
Join<BuildDetails, CopyQualityDetails> qualityJoin = buildDetailsTable.join(CopyQualityDetails_.build, JoinType.INNER);
Join<BuildDetails, DeploymentDetails> deploymentJoin = buildDetailsTable.join(DeploymentDetails_.build, JoinType.INNER);
Join<BuildDetails, TestDetails> testJoin = buildDetailsTable.join(TestDetails_.build, JoinType.INNER);

List<Predicate> predicates = new ArrayList<>();
predicates.add(cb.equal(BuildDetails_.buildNumber, "1.0.0.1"));
predicates.add(cb.equal(BuildDetails_.projectName, "Tera"));

query.multiselect(buildDetails.get(BuildDetails_.buildNumber),
                  buildDetails.get(BuildDetails_.buildDuration),
                  qualityJoin.get(CodeQualityDetails_.codeHealth),
                  deploymentJoin.get(DeploymentDetails_.deployedEnv),
                  testJoin.get(TestDetails_.testStatus));
query.where(predicates.stream().toArray(Predicate[]::new));

TypedQuery<MyQueriedBuildDetails> typedQuery = entityManager.createQuery(query);

但由于我没有使用 JPA ,我不能使用 entityManager. 那么有什么方法可以使用 Hibernate 3.6.10 构造 CriteriaQuery 吗?

我正在努力使用Hibernate 3.6.10. 创建一个像上面这样的查询

【问题讨论】:

    标签: hibernate criteria


    【解决方案1】:

    在 Hibernate 3.6 中,您不能使用 JPA Criteria API。

    但是 Hibernate 有自己的 Criteria Query(在 Hibernate 5 中已弃用):

    http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html_single/#querycriteria

    【讨论】:

    • 是的。但是hibernate自己的标准API是否支持我上面提到的高级功能?
    • 那么这些功能显然是不可用的。
    猜你喜欢
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多