我有一个简单的层次结构TradeCustomer
是一个OrganizationRole
。 OrganizationRole
链接到 Organization
。 Organization
有一个属性 roles
,其中包含组织的所有角色。
我想使用 CriteriaBuilder
编写一个 JPA 查询,其根是 Organization
,但访问 TradeCustomer
的属性,例如,我需要将 Organization
与 OrganizationRole
结合起来,并将其转换为 TradeCustomer
。
最佳答案
这是我的解决方案:
CriteriaQuery<String> query = cb.createQuery(String.class);
Root<Organisation> root = query.from(Organisation.class);
Join<Organisation, TradeCustomer> tcJoin = root.join("roles");
query.select(tcJoin.get(TradeCustomer_.rate));
重要的一点是使用列的名称 (roles
) 而不是 Organization_.roles。
关于java - 使用 CriteriaBuilder (OpenJPA) 与基类连接时转换为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179286/