CriteriaQuery с использованием Hibernate 3.6.10 - PullRequest
0 голосов
/ 26 октября 2018

Я хочу создать запрос, используя CriteriaBuilder.Я использую hibernate 3.6.10

Структура запроса будет аналогична приведенной ниже - Как объединить несколько таблиц с использованием критериев гибернации, когда отношение сущностей не является прямым?

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. Так есть ли способ построить CriteriaQuery с использованием Hibernate 3.6.10?

Я пытаюсь создать запрос, как описано выше, с Hibernate 3.6.10.

1 Ответ

0 голосов
/ 26 октября 2018

С 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...