我有一个简单的层次结构,TradeCustomer
是一个OrganisationRole
。 OrganisationRole
链接到Organisation
。 Organisation
具有包含组织所有角色的属性roles
。
我想使用CriteriaBuilder
编写一个JPA查询,其根是Organisation
,但是访问TradeCustomer
的属性,例如,我需要将Organisation
与OrganisationRole
联接并将其转换为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
)代替Organisation_.roles。