【问题标题】:How Map two entities that share the same primary key in hibernate with annotations?如何在hibernate中使用注释映射两个共享相同主键的实体?
【发布时间】:2018-04-29 13:22:48
【问题描述】:
我是hibernate的新手,我不知道如何映射这个简单的Model
使用 JPA 或 Hibernate 注释。我尝试建模的是提供者具有全局评级,并且全局评级实体的标识符与提供者实体的标识符相同(单向 OneToOne),换句话说,我想要 外键在实体全局评级中同时为primary和foreign,但提供者实体也有实体全局评级的外键 .这可能吗?
【问题讨论】:
标签:
java
hibernate
jpa
primary-key
hibernate-mapping
【解决方案1】:
你可以通过@MapsId注解实现你想要的。
例如:
@Entity
public class Provider{
@Id
@GeneratedValue
private long idProvider;
@OneToOne(cascade=CascadeType.ALL, mappedBy="provider")
private GlobalRating rating;
// Getter & Setter
}
@Entity
public class GlobalRating{
@Id
private long idProvider;
@OneToOne(cascade=CascadeType.ALL)
@MapsId
@JoinColumn(name="idProvider")
private Provider provider;
// Getter & Setter
}