2014-01-29 15 views
2

我有一个实体用户,另一个实体书,用户可以有很多书,书可以有很多所有者,所以它是一个多元关系。 和一个中间表user_book是用user_id创建的,book_idjpa manytomany如何添加重复的项目

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

那么我该怎么处理它呢?用户如何拥有2本相同的书籍?

回答

0

看起来在这种情况下,您应该在中间表USER_BOOK中添加标识字段。这样,只要用户多次使用同一本书,只需在连接表中添加一个新的识别符即可坚持。

0

作为一个简单的答案永远不要使用您的业务密钥作为ID! :)

作为一个例子,如果您将ISBN设置为Book实体的数据库ID,您可能会遇到问题。然而,如果你设置书的ID,一个任意的ID(AutoGenerate,SequenceTable等)永远不需要担心在一个关系中有同一本书;)

1

好吧,我已经想通了方法,将设置更改为列表,将从中间表中删除主键。