【发布时间】:2012-10-23 17:10:00
【问题描述】:
我想以one to many 方式映射两个实体。
A->[B, B]
我想向join table 添加更多字段。 Pojos 看起来像:
@Entity
@Table(name = "A", schema = "examples")
@SecondaryTable(name = "A_B", pkJoinColumns = @PrimaryKeyJoinColumn(name = "a_id", referencedColumnName = "id"))
public class A
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Basic
private String name;
@Basic
private Integer field1;
@Column(table = "A_B", name = "field2")
private Integer field2;
@OneToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "A_B", joinColumns = {@JoinColumn(name = "a_id")}, inverseJoinColumns = {@JoinColumn(name = "b_id")})
private List<B> datastores;
}
@Entity
@Table(name = "B", schema = "examples")
@SecondaryTable(name = "A_B", pkJoinColumns = @PrimaryKeyJoinColumn(name = "b_id", referencedColumnName = "id"))
public class B
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Basic
private String field1;
@Basic
private int field2;
@Column(table = "A_B", name = "field3")
private int field3;
}
问题是,为了添加,我必须删除 A_B 表上的 foreign key。如何解决映射以允许 foreign keys ?
谢谢。
【问题讨论】:
标签: java hibernate jpa orm mapping