【问题标题】:How to avoid duplicate records when update in DB using hibernate使用hibernate在数据库中更新时如何避免重复记录
【发布时间】:2013-08-14 09:52:18
【问题描述】:

我一次用数据库中的多个条目更新记录。当我尝试创建另一个多条记录时,重复的条目保存在 DB 中。如何使用休眠防止记录重复条目。我想限制 2 或更多的列值不应该像以前一样

【问题讨论】:

  • 相关代码呢??
  • 你的插入方法同步了吗?
  • @sureshatta 对于一个市场 ID,我每月创建 4 个条目,如 2013 年 1 月 8 日至 2013 年 8 月 31 日。当我选择与其他日期相同的市场 ID 时,如 2013 年 8 月 15 日至2013 年 9 月 18 日允许与上一个条目重复条目
  • @JunedAhsan 没有不同步的插入方法
  • 在插入条目之前,您可以使用Map 和数据库中的现有条目来检查它们的唯一性

标签: java database hibernate java-ee-6 hibernate-mapping


【解决方案1】:

在表上定义一个主键或至少一个唯一约束是避免重复的最可靠方法。然后您的代码会抛出一些有用的错误,以便您正确处理事务。

【讨论】:

    【解决方案2】:

    使用唯一约束定义您的实体对象

        @Entity
        @Table(name="user_group", 
                  uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "group_id"})})
        public class UserGroup implements Serializable
        {
    
             User user //This is user model
             Group group // This is Group model 
                 // Other fields
                 // setter and getter methods.
    
        }
    

    在事务中保存对象

     Session session = sessionFactory().openSession();
     session.beginTransaction();
     session.saveOrUpdate(listOfuserGroup);
     session.getTransaction().commit();
    

    【讨论】:

    • 我的主键 id 是唯一的...我在 db 中插入的数据是相同的,除了 id 和 marketcode。我尝试使用 uniqueconstraint ..但没有运气
    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    相关资源
    最近更新 更多