休眠:如何在父实体中使用一个属性定义组合键

问题描述

让我们假设我有两个实体:

@Entity
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToMany(cascade = CascadeType.ALL,orphanRemoval = true,fetch = FetchType.EAGER)
    private List<PriceGroup> priceGroups = new ArrayList<PriceGroup>();
}
@Entity
public class Page {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String pageNumber;

    @ManyToOne(fetch = FetchType.EAGER,optional = false)
    private Book book;
}

现在我要防止有人为同一本书创建两个具有相同pageNumber的页面。

我尝试了@NaturalId,但是我不知道如何将Book.id及其pageNumber属性组合在一起。我只找到了两种都在Page实体中的原始属性的解决方案。

你能帮忙吗?

非常感谢您

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)