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”

让Oracle触发ID而不是Hibernate的序列?

应用程序结束后具有 Hibernate 的 HSQLDB 不保存记录

Hibernate session.update插入行而不是更新行

如何获得价值比多列值,而不是使用从SQL Server复合键字段

SQL Server 标识列值从 0 而不是 1 开始