如何使用批注映射休眠中共享相同主键的两个实体



我是休眠新手,我不知道如何映射这个简单的模型使用 JPAHibernate 注释。我尝试建模的是提供者具有全局评级,并且全局评级实体的标识符与提供者实体的标识符相同(单向 OneToOne(,换句话说,我希望实体全局评级中的外键同时是主要外部,但提供者实体也具有实体全局评级的外键这可能吗?

你可以通过@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          
}

最新更新