【问题标题】:jpa 2.0 annotation to a class with 2 ID pointing to two different tablesjpa 2.0 对具有 2 个 ID 的类的注释,指向两个不同的表
【发布时间】:2016-09-20 10:13:30
【问题描述】:

我有这 3 个实体 E1、E2、E3。 我想知道我必须如何注意我的 E3 类有 2 个主键,每个主键都指向具有附加字段的不同表。

@Entity
public class E1 extends RAP{
    /**
     * 
     */
}

@Entity
public abstract class E2{
    /**
     * 
     */
}

E3 类有 2 个主键指向 e1 和 e2。

@Entity
public class E3 extends RAP{
    @Id
    @ManyToOne  
    @JoinColumn(name = "e1_id")
    private E1 e1;

    @Id
    @ManyToOne
    @JoinColumn(name = "e2_id")
    private E2 e2;

    private Double myfield1;
    private Double myfield2;
}

但是有一个问题。像这样……

This class has a composite primary key. It must use an ID class.

所以我想在不使用@Embedded 实体的情况下使用一些注释

【问题讨论】:

  • 你不应该有 2 个主键,使用嵌入式,如果你只想索引字段以快速访问,或者约束没有重复值,你可以用其他方法实现这个,但是每个JPA 应该只有一个 ID 字段
  • 你能告诉我这个其他方法吗
  • 定义一个@IdClass 如消息所示...

标签: java eclipse hibernate jpa


【解决方案1】:

Here 您有一个示例,说明如何在多个列上指定约束,以及如何声明表之间的关系,还请查看this 以获取有关 jpa 2.0 中索引的参考,以及与 2.1 的主要区别。

您的问题看起来像是分层模型的完美候选者,这个link 展示了如何定义和使用这种模型的示例。

如果你能解释一下你想要归档的内容,也许我们可以找到更具体的解决方案。

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 2018-06-25
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多