jpa 2.0注释到一个有两个ID的类指向两个不同的表

问题描述:

我有这3个实体E1,E2,E3。 我想知道我必须注意我的E3类有两个主键,每个主键都指向不同的表以及其他字段。jpa 2.0注释到一个有两个ID的类指向两个不同的表

@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实体

+0

你不应该有2个主键,使用嵌入式操作系统,如果你只想指数快速接入领域,或约束有也不重复的值,你可以用其他的方法来实现这一点,但每个JPA应该只有一个ID字段 – karelss

+0

可以请你告诉我这另一种方法 – isom

+0

定义一个'@ IdClass'的消息称... –

Here你如何指定了多个列约束的例子,以及如何申报表之间的关系,也请检查this以获得关于jpa 2.0中索引的参考,并与2.1的主要区别。

你的问题看起来像一个分层模型一个完美的候选人,这link显示了如何定义和使用这种模型的例子。

如果你可以解释一下你想存档多一点,也许我们可以找到一个更具体的解决方案。