【问题标题】:Hibernate creates new row on save and not updatesHibernate 在保存而不是更新时创建新行
【发布时间】:2015-05-27 05:16:10
【问题描述】:

我正在使用 MySQL + spring + hibernate。

当我执行以下代码时,它会创建一个新行:

sessionFactory.getCurrentSession()
        .save(configTable);

但是下面的这段代码更新了

sessionFactory.getCurrentSession()
        .update(configTable);

我不确定为什么上面的代码会在表中创建一个新行,根据我的理解,它应该在两种情况下都更新, 知道我会错过什么吗?或者您需要什么信息来帮助我跟踪问题...

【问题讨论】:

  • sessionFactory.getCurrentSession() .update(configTable); 创建新行?

标签: java mysql spring hibernate


【解决方案1】:

您需要使用 saveOrUpdate() 会话方法:

sessionFactory.getCurrentSession().saveOrUpdate(configTable);

【讨论】:

    【解决方案2】:

    更新时通过实体主键进行更新。

    确保您的实体具有此注释以进行保存和更新。

    @org.hibernate.annotations.Entity(dynamicInsert = true, dynamicUpdate = true)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2017-11-03
      • 2018-05-09
      • 2013-03-23
      • 1970-01-01
      • 2015-01-17
      相关资源
      最近更新 更多