Java JPA/toplink异构实体列表
各位同事:, 使用JPA,我需要解决以下问题:在数据库级别存在3个实体(表示SuperEntity、DetailsAgentity和DetailsByEntity)。SuperEntity包含DetailsAgentity和DetailsAgentity字段的公共部分Java JPA/toplink异构实体列表,java,orm,jpa,polymorphism,toplink,Java,Orm,Jpa,Polymorphism,Toplink,各位同事:, 使用JPA,我需要解决以下问题:在数据库级别存在3个实体(表示SuperEntity、DetailsAgentity和DetailsByEntity)。SuperEntity包含DetailsAgentity和DetailsAgentity字段的公共部分 所以问题是:是否有可能从JPA中解决混合元素detailsAgentity和detailsEntity的集合?可能存在toplink中的某个扩展来指定实体的类?假设SuperEntity映射为继承树的根,则该类型的查询结果可以返回
所以问题是:是否有可能从JPA中解决混合元素detailsAgentity和detailsEntity的集合?可能存在toplink中的某个扩展来指定实体的类?假设SuperEntity映射为继承树的根,则该类型的查询结果可以返回其具体子类的异构集合。查询在标准JPA中是多态的。以下是JPA 1.0规范的相关章节: 3.6.5多态查询 默认情况下,所有查询都是 多态的。即FROM子句 查询的类型不仅指定 特定实体的实例 它显式连接到的类 引用,但也引用子类。这个 查询返回的实例包括 子类的实例 满足查询条件 例如,查询
select avg(e.salary) from Employee e where e.salary > 80000
返回所有员工的平均工资
员工,包括
员工
,如经理
和
豁免
及
4.4.8多态性
Java持久性查询是
自动多态。来自
查询的子句不仅指定
特定实体的实例
显式引用的类
但是子类也是如此。这个
查询返回的实例包括
子类的实例
满足查询条件
因此,默认情况下,对超类型的任何查询都会在结果中包含子类型。这很清楚,但并不是我问题的答案。我没有问这是否可能,我只是问怎么做。Copypaste of spec“查询返回的实例包括满足查询条件的子类的实例”——没有告诉我如何执行。avg-retursn编号,但我需要两种类型的对象collection@Dewfy如果您觉得它没有帮助,我很抱歉,但我认为它确实回答了问题(只需查询一个类型),规范甚至提供了一个示例(返回所有员工的平均工资,包括员工的子类型,如经理和豁免)。这也澄清了这是标准JPA,这是我的主要目标。如果你觉得它没有帮助,也许其他读者会。