0
我是新来的JPA加入表自定义,我想使用API标准,以创建这个查询:JPA标准:草案第
SELECT company.*
FROM company
LEFT OUTER JOIN address ON company.id = address.company_id AND address.postal_code = '54000'
ORDER BY company.id;
搜索和反思之后,我尝试这个代码,这似乎是合乎逻辑我说:
...
CriteriaQuery<Company> query = criteriaBuilder.createQuery(Company.class)
Root<Company> defCompany = query.from(Company.class);
Join joinAddresses = defCompany.join("addresses", JoinType.LEFT);
joinAddresses.on(criteriaBuilder.equal(joinAddresses.get("postalCode"), "54000"));
query.orderBy(criteriaBuilder.asc(defCompany.get("id")));
List<Company> companies = entityManager.createQuer(query)
.getResultList();
...
但OpenJPA中抛出这个错误:
ERROR OpenEJB- EjbTransactionUtil.handleSystemException: org.apache.openjpa.persistence.criteria.Joins$List.on(Ljavax/persistence/criteria/Expression;)Ljavax/persistence/criteria/Join;
java.lang.AbstractMethodError: org.apache.openjpa.persistence.criteria.Joins$List.on(Ljavax/persistence/criteria/Expression;)Ljavax/persistence/criteria/Join;
我希望有人尝试过这样做,我觉得p可以,但我找不到关于此的线索或问题。
这就是它与Hibernate 5.2.5一起使用。照顾https://hibernate.atlassian.net/browse/HHH-2772。非常感谢 :) –