如何使用注释来映射在hibernate中共享同一主键的两个实体?

时间:2017-11-16 05:30:49

标签: java hibernate jpa primary-key hibernate-mapping

我是 hibernate 的新手,我不知道如何映射这个简单的Model 使用 JPA Hibernate注释。我试图建模的是提供商具有全局评级,全球评级实体的标识符与提供商实体的标识符相同(单向OneToOne),换句话说我想拥有外键在实体全球评级中,同时主要外部,但提供商实体还具有实体全球评级的外键 。这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以使用@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          
}