【问题标题】:Can JPA handle interface references?JPA 可以处理接口引用吗?
【发布时间】:2011-07-17 08:11:13
【问题描述】:

我有以下 3 个实体:

  • 实体类 A 实现接口 X
  • 实体类 B 实现接口 X
  • 实体类 C

我希望实体类 C 能够保存对 X 类型实体的引用,即:A 或 B。

是否可以在 C 中没有两个引用字段的情况下执行此操作,例如:

@ManyToOne 私有 C 父级;

或者我是否需要为每个 C 实现提供一个参考并自己完成作业?

【问题讨论】:

    标签: jpa jpa-2.0


    【解决方案1】:

    不。 JPA 没有为接口类型的字段/属性定义持久性。 JDO 是唯一允许这样做的持久性规范。

    您唯一能做的就是拥有一个通用的基类,但对于您的模型来说这可能是不可能的。

    【讨论】:

      【解决方案2】:

      在 JPA 规范中未定义,但如果使用 EclipseLink,您可以为此使用 @VariableOneToOne 映射。

      看, http://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Interfaces

      【讨论】:

        猜你喜欢
        • 2020-07-07
        • 1970-01-01
        • 2020-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多