使用JPA定义映射关系

时间:2011-06-03 20:04:12

标签: orm jpa

我很难弄清楚用JPA2映射定义以下关系的正确方法。

create table TableA {
  id int primary key
  name varchar(255) not null
);

create table TableB {
  x_id int not null REFERENCES TableA(id),
  y_id int not null REFERENCES TableA(id),
  PRIMARY KEY (x_id, y_id)
);

由于涉及复合键,我知道我需要定义一个可序列化的类,例如FooPK

@Embeddable 
public class FooPK {
    @Column(name = "x_id", insertable=true, nullable=false)
    private long x_id;

    @Column(name = "y_id", insertable=true, nullable=false)
    private long y_id;
    ...
}

但我很遗憾在哪里定义@OneToMany和@ManyToOne关系,以及在这种情况下如何正确写下@JoinColumn()。

非常感谢任何帮助。

奥利弗

1 个答案:

答案 0 :(得分:0)

尝试使用@ManyToMany注释。

您无需定义中间类。

更多信息:http://download.oracle.com/javaee/5/api/javax/persistence/ManyToMany.html