相关疑难解决方法(0)

Hibernate一对一实体关联与3个类之间的共享PK

我想要3个java类的对象之间的单向一对一关系:Person to Heart,Person to Liver.我希望对象共享相同的PK,即每个人都有相应的心脏和肝脏,其中person.person_id = heart.heart_id = liver.liver_id.我不想将3个表合并为1,因为每个表都有很多字段.这是我的代码(主要基于此问题的接受答案):

@Entity
public class Person {
   public long personId;
   private String name;
   public Heart heart;
   public Liver liver;
   // other fields

   @Id
   @GeneratedValue
   public long getPersonId() {return personId;}

   @OneToOne(cascade = CascadeType.ALL)
   @PrimaryKeyJoinColumn
   public Heart getHeart() {return heart;}

   @OneToOne(cascade = CascadeType.ALL)
   @PrimaryKeyJoinColumn
   public Liver getLiver() {return liver;}

   // other getters and setters and constructors
}


@Entity
public class Heart {
   private long heartId;
   private int bpm;
   private Person person; …
Run Code Online (Sandbox Code Playgroud)

hibernate one-to-one

6
推荐指数
1
解决办法
7265
查看次数

标签 统计

hibernate ×1

one-to-one ×1