jpa manytomany如何添加重复项目

时间:2014-01-29 18:40:43

标签: java jpa duplicates

我有一个实体用户,另一个实体书,用户可以拥有很多书,而且这本书可以有很多所有者,所以这是一个很多人的关系。 并使用user_id和book_id

创建了中间表user_book

但现在出现了问题,如果用户有2本完全相同的书籍会发生什么,例如他两次购买同一本书。然后主键约束被触发,我不能再坚持用户了。

那我该怎么办呢?用户如何拥有2本相同的书?

3 个答案:

答案 0 :(得分:1)

好的,我已经想出了方法,将Set更改为list,这将从中间表中删除主键。

答案 1 :(得分:0)

在这种情况下,您应该向中间表USER_BOOK添加一个标识字段。这样,每当用户多次使用同一本书时,il将仅使用连接表中的新标识来保留。

答案 2 :(得分:0)

作为一个简单的答案永远不要将您的业务密钥用作身份证! :)

作为示例,如果您将ISBN设置为Book实体的数据库ID,则可能会遇到问题。但是如果你设置了book id,任意id(AutoGenerate,SequenceTable等)都不需要担心在关系中有同一本书;)