Hibernate:从应用程序而不是数据库插入列值
Posted
技术标签:
【中文标题】Hibernate:从应用程序而不是数据库插入列值【英文标题】:Hibernate : Insert column value from app instead of database 【发布时间】:2015-08-24 12:26:16 【问题描述】:我的数据库中有一个名为 updateddate
的列,它应该通过应用程序与 sysdate 一起插入。
如果我的应用程序代码遇到一些异常,即使这样,我也希望将此列值与 sysdate 通过数据库一起插入。
因此,通过 SQL 脚本,我将此列默认为 sysdate。
下面是我的休眠 hbm xml 文件,
<property name="updatedDate" type="timestamp">
<column name="UPDATED_DATE" ></column>
</property>
但是,当没有异常时,该列不会通过我的应用程序插入。它正在通过数据库进行更新。 我是通过查看日期格式来说明这一点的。
如何使列通过应用程序插入,只有在遇到异常时才应通过数据库插入?
我试过insert=true
。但没有帮助。
【问题讨论】:
“我是通过查看日期格式来说明这一点的。”您能详细说明一下吗? 应用程序代码中的日期格式为 dd-mm-yyyy,没有时间戳。而通过 DB 插入的日期格式是带时间戳的。 【参考方案1】:我不太确定您为什么要这样做,但您的应用程序应该将updatedDate
设置为当前系统日期/时间。仅当您的应用程序插入带有updatedDate = null
的记录时,才会应用数据库默认值。
【讨论】:
以上是关于Hibernate:从应用程序而不是数据库插入列值的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL 和 Hibernate:插入默认值 0 而不是“null”
应用程序结束后具有 Hibernate 的 HSQLDB 不保存记录
Hibernate session.update插入行而不是更新行