如何使用hibernate标准插入/更新sysdate?

时间:2011-10-28 10:07:14

标签: hibernate

我正在使用带休眠的spring。我的数据库是oracle。我想用sysdate更新/保存记录。我们可以使用HQL插入/更新sysdate。但我不知道如何使用Criteria插入sysdate。请帮帮我。

谢谢!

1 个答案:

答案 0 :(得分:1)

在HQL插入/更新语句中使用sysdate似乎没有直接的方式。您可以在HQL选择中使用current_timestamp()函数,但不能在update / insert中使用。

关于您是否需要在某些隔离情况下进行此更新,或者此列始终在插入/更新实体时总是具有数据库日期的问题尚不明确。

  • 如果它是您需要的隔离更新:您可以通过@Formula (value="select sysdate from dual")在您的实体中定义一个始终保持sysdate的属性来解决此问题。如果此属性名为sysdate,则可以通过执行update MyEntity e set e.myDate = e.sysdate来实现此目的。考虑到这种方法引入了对Oracle的直接依赖。

  • 如果要在实体更新时始终使用数据库的时间戳更新列,请在其注释中使用@UdoFholl pointed out方法,或使用触发器(如果有的话)对数据库的控制级别)并使用@Generated注释该字段。