小编use*_*924的帖子

使用Eclipselink/JPA,我可以使用与主复合键共享字段的外部复合键吗?

我的数据库有两个实体; 公司和个人.公司可以有很多人,但一个人必须只有一个公司.表结构如下所示.

COMPANY
----------
owner   PK
comp_id PK
c_name
PERSON
----------------
owner    PK, FK1
personid PK
comp_id  FK1
p_fname
p_sname

在我看来,我可以删除PERSON.OWNER并通过外键导出它; 但是,我不能在不影响遗留代码的情况下进行此更改.

我已将这些建模为JPA注释类;

@Entity
@Table(name = "PERSON")
@IdClass(PersonPK.class)
public class Person
    implements Serializable {

  @Id
  private String owner;

  @Id
  private String personid;

  @ManyToOne
  @JoinColumns(
    {@JoinColumn(name = "owner", referencedColumnName = "OWNER",
                 insertable = false, updatable = false),
     @JoinColumn(name = "comp_id", referencedColumnName = "COMP_ID",
                 insertable = true, updatable = true)})
  private Company company;

  private String p_fname;

  private String p_sname;

  ...and standard getters/setters... …

java orm jpa eclipselink

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

eclipselink ×1

java ×1

jpa ×1

orm ×1