【问题标题】:jpa manytomany how to add duplicate itemjpa manytomany如何添加重复项
【发布时间】:2014-02-21 18:27:45
【问题描述】:

我有一个Entity用户,还有一个Entity book,用户可以有很多书,这本书可以有很多所有者,所以是多对多关系。 并使用 user_id 和 book_id 创建了一个中间表 user_book

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

那我能用它做什么呢?一个用户怎么可能有两本相同的书?

【问题讨论】:

    标签: java jpa duplicates


    【解决方案1】:

    好的,我想通了,把Set改成list,这样会去掉中间表的主键。

    【讨论】:

      【解决方案2】:

      在这种情况下,您似乎应该在中间表USER_BOOK 中添加一个标识字段。这样,每当用户多次使用同一本书时,il 将简单地在连接表中使用新标识符进行持久化。

      【讨论】:

        【解决方案3】:

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

        例如,如果您将 ISBN 设置为 Book 实体的数据库 ID,您可能会遇到问题。但是,如果您设置书籍 ID,则任意 ID(AutoGenerate、SequenceTable 等)永远不必担心在关系中有同一本书;)

        【讨论】:

          猜你喜欢
          • 2022-01-23
          • 2018-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-07
          • 1970-01-01
          • 2015-02-26
          相关资源
          最近更新 更多