代码之家  ›  专栏  ›  技术社区  ›  Dewfy

JPA/TopLink异构实体列表

  •  2
  • Dewfy  · 技术社区  · 14 年前

    同事, 使用JPA,我需要解决以下问题:在数据库级别,退出3个实体(说superentity、detailsaentity和detailsbentity)。父实体包含用于detailsEntity和detailsBenty的字段的公共部分。

    所以问题是:是否可以从JPA中解析混合元素detailsEntity和detailsBenty的集合?可能是exits-some-extension-in-toplink来指定实体的类?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Doug Clarke    14 年前

    假设父实体被映射为继承树的根,则此类型的查询结果可以返回其具体子类的异类集合。

        2
  •  0
  •   Pascal Thivent    14 年前

    查询在标准JPA中是多态的。以下是JPA1.0规范的相关章节:

    3.6.5多态查询

    默认情况下,所有查询都是 多态性。也就是说,FROM条款 一个查询不仅指定 特定实体的实例 它明确指向的类 查询返回的实例包括 子类的实例 满足查询条件。

    select avg(e.salary) from Employee e where e.salary > 80000
    

    返回所有人的平均工资 员工,包括 Employee Manager Exempt .

    4.4.8多态性

    Java持久性查询是 自动多态。从 查询子句不仅指定 特定实体的实例 明确引用的类 但也属于亚类。这个 查询返回的实例包括 子类的实例 满足查询条件。

    因此,默认情况下,对父类型的任何查询都将在结果中包含子类型。

    推荐文章