【问题标题】:How to avoid created date column to overwrite when data updated如何避免在数据更新时覆盖创建的日期列
【发布时间】:2012-01-10 04:33:49
【问题描述】:
Date createddate = new Date();
project.setCreateddate(createddate);
projectservice.savaorupdate(project);

在上面的代码中'createddate'列被保存... 当我编辑 bean 然后它涉及到不同的控制器时,我输入修改日期

    Date modifydate= new Date();
    project.setModifieddate(modifydate);
    projectservice.savaorupdate(project);

在此过程中,createddate 列将不会获得值并将其无效。 请给出任何解决这种情况的方法。

【问题讨论】:

  • 进行更新时,应先从数据库中检索“项目”,然后对其进行设置。
  • 我正在使用 Spring 表单 - 所以当我在“/edit_save.htm”控制器中使用模型属性时,我得到了项目 bean 的所有值,除了修改日期(显然)......所以我记录了它如上所述....

标签: java spring jakarta-ee spring-mvc


【解决方案1】:

我认为休眠查询也在对未修改的列进行更新。设置 show-sql=true 来找到这个。

            <prop key="hibernate.show_sql">true</prop>

您可以在标签级别设置 dynamic-update=true 以对其进行排序。检查链接here

<class
    name="ClassName"                              (1)
    table="tableName"                             (2)
    dynamic-update="true|false"                   (8)
    dynamic-insert="true|false"                   (9)
/>

【讨论】:

  • Aravind 感谢回答我应该在哪里使用 true.... 在 applicationcontext.xml 中?
  • 提一下我使用带注释的Hibernate
  • @Meenakshi 我猜你使用 AnnotationSessionFactoryBean ,如果是这样,在你的 applicationcontext.xml 下,你会找到属性 ,把它放在下面。
  • @aravind .. 我的 applicationcontext.xml 如下 30false prop> 更新true
  • @Meenakshi - 现在查询应该在您执行时显示在控制台中。看看发生了什么。如果它在所有列上触发更新(我认为应该是) - 在类级别的 hbm 中使用 dynamic-update="true" 并尝试。
猜你喜欢
  • 1970-01-01
  • 2021-12-05
  • 2020-09-11
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 2014-12-04
相关资源
最近更新 更多