java - 使用 CriteriaBuilder (OpenJPA) 与基类连接时转换为子类

标签 java jpa inheritance openjpa criteriaquery

我有一个简单的层次结构TradeCustomer是一个OrganizationRoleOrganizationRole 链接到 OrganizationOrganization 有一个属性 roles,其中包含组织的所有角色。

我想使用 CriteriaBuilder 编写一个 JPA 查询,其根是 Organization,但访问 TradeCustomer 的属性,例如,我需要将 OrganizationOrganizationRole 结合起来,并将其转换为 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/

相关文章:

java - 如何从右到左设置 JTextArea 的方向(在 JOptionPane 内)

java - 如何将静态内部类重构为 Eclipse 中的顶级类?

oracle - 服务器重启后插入的唯一约束冲突

java - 如何在 Spring 和 JPA/Hibernate 中实现工作单元?

Java泛型问题

java - 测验应用程序,更改错误答案选择的错误和正确答案的按钮颜色,android

java - ID值没有自动生成

java - 在一些 Java 代码中,为什么类 Deck 扩展 Card 类?

c# - 如何创建实现少量接口(interface)(或接口(interface)子集)的类型变量?

java - 我们如何用下划线替换重复的单词,Java‽