怎么用hibernate保存数据库的当前时间

Isenhart 2013-03-20 12:40:16
比如:regTime字段表示注册时间,怎么做到插入的这个字段值是数据库的时间,而不是我们自己电脑的时间。
我的想法是:
1.hql先用select current_timestamp() from 类名,得到数据库的当前时间,然后set给字段,再插入?这样貌似不靠谱。
2.用触发器。insert的时候,插入时间。
不知哪个好,或者是还有什么更好的办法。

还有个lastLoginTime字段,表示上次在线时间。本想偷懒在实体类中用@tempral(tempral.TIMESTAMP)让mysql自动生成timestamp字段,以后就让数据库自己维护,发现在mysql表中生成的字段类型是datetime类型,郁闷啊.
...全文
292 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
new Date() 或 在数据库中设置默认值就可以了
  • 打赏
  • 举报
回复
update XXX set YY=now() where zzz=1;
Isenhart 2013-03-20
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
插入数据库的时候
。。。。兄弟,不要惜墨如金啊。可能你认为简单不值一提的东西,可能正是我困惑所在。 能再多指点一下不?hibernate文化档里只是说了怎么在where子句中用current_date(), current_time(), and current_timestamp(),没有插入相关的说明,自己又学艺不精,求完整思路
forgetsam 2013-03-20
  • 打赏
  • 举报
回复
1 项目代码中取得的时间可以看作数据库的时间,毕竟基本都是取操作系统时间。 2 数据库里可以直接设置默认值,hibernate不映射这个字段就可以了。
  • 打赏
  • 举报
回复
插入数据库的时候
Isenhart 2013-03-20
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
用数据库的getdate()函数
可否说得再详细点 你的间断是说在触发器里用getdate()这个方法吗?
  • 打赏
  • 举报
回复
用数据库的getdate()函数

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧