仕様を使用して、エンティティの非主キーで 2 つのテーブルを結合することは可能ですか? はいの場合、その方法を教えてください。
属性は基本型 -> Long です。
前もって感謝します。
仕様を使用して、エンティティの非主キーで 2 つのテーブルを結合することは可能ですか? はいの場合、その方法を教えてください。
属性は基本型 -> Long です。
前もって感謝します。
質問への答えが見つかりましたそれが誰かを助けることを願っています.
Join<PARENT, CHILD> tableJoin = null;
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<PARENT> criteriaQuery = criteriaBuilder.createQuery(PARENT.class);
Root<PARENT> from = criteriaQuery.from(PARENT.class);
List<Predicate> predicateList = ByEntityCriteriaHelper.getPredicatesByPatternOnAttributes(entityManager, searchObject, from, criteriaQuery, criteriaBuilder);
Predicate[] predicates = new Predicate[predicateList.size()];
tableJoin = from.join("CHILD");
predicateList.add(criteriaBuilder.equal(tableJoin.get("id") , searchObject.getChildObject.getId()));
criteriaQuery.where(predicateList.toArray(predicates));
TypedQuery<PARENT> typedQuery = (TypedQuery<PARENT>)entityManager.createQuery(criteriaQuery);
List<PARENT> resultList = typedQuery.getResultList();