我有一个人类,其基本字段(例如姓名,年龄等)...我想为每个人的汽车详细信息创建一个单独的表,
所以我以这种方式实现了@OneToOne
关系:
@Entity
@Table(name = "PERSON")
public class person {
@OneToOne(mappedBy="person", cascade= CascadeType.ALL)
private CarDetails carDetails ;
//more fields and getters and setters and of course @Id.....
}
和另一个实体:
@Entity
@Table(name="CAR_DETAILS")
public class CarDetails {
@Id
@Column(name= "READER_ID")
@GeneratedValue(generator="gen")
@GenericGenerator(name="gen", strategy="foreign", parameters=@Parameter(name="property", value="Person"))
private long readerId;
@OneToOne
@PrimaryKeyJoinColumn
private Person person;
//more fields and getters and setters
}
一切正常,但我不确定这是否是“ mappedBy”的正确用法。
我对此有所了解,我遇到了自己的实现方式,但也遇到了其他实现方式,因此我有些困惑。
有人可以详细说明这是否是“ mappedBy”的正确用法吗?
最佳答案
我建议您使用旧的时尚模式
@OneToOne(orphanRemoval = true, optional = true, cascade = {CascadeType.ALL}, mappedBy = "person")
@Getter
@Setter
private CarDetails carDetails;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
@JoinColumn(name = "person_id")//You will need to create foreign key
@Getter
@Setter
private Person person;
关于java - 这是@OneToOne关系中“mappedBy”的正确用法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30956300/