[英]Unidirectional one-to-one relationship
How do I achieve a unidirectional one to one relationship for Person and PersonData? 如何实现Person和PersonData的单向一对一关系?
@Entity
public class Person {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
// @OneToOne...?
// ...?
private PersonData data;
}
@Entity
public class PersonData {
@Id
private long personId;
}
Using the @OneToOne
annotation with the @JoinColumn
annotation to specify the primary key of the other entity: 将@OneToOne
注释与@JoinColumn
注释一起使用以指定另一个实体的主键:
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="personId")
private PersonData data;
You can use @PrimaryKeyJoinColumn
to have shared primary key in PersonData Table. 您可以使用@PrimaryKeyJoinColumn
在PersonData表中共享主键。
@Entity
public class Person implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
@OneToOne(cascade = CascadeType.PERSIST, mappedBy = "personId")
@PrimaryKeyJoinColumn
private PersonData data;
}
@Entity
public class PersonData implements Serializable {
@Id
@OneToOne(targetEntity = Person.class)
private Long personId;
}
For more details: 更多细节:
https://github.com/abhilekhsingh041992/spring-boot-samples/blob/master/jpa/src/main/java/example/springboot/jpa/domain/Person.java https://github.com/abhilekhsingh041992/spring-boot-samples/blob/master/jpa/src/main/java/example/springboot/jpa/domain/Person.java
https://github.com/abhilekhsingh041992/spring-boot-samples/blob/master/jpa/src/main/java/example/springboot/jpa/domain/PersonData.java https://github.com/abhilekhsingh041992/spring-boot-samples/blob/master/jpa/src/main/java/example/springboot/jpa/domain/PersonData.java
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.