hibernate编辑实体日期的更新问题

本文讨论了在Hibernate开发中如何处理实体的创建日期(cdate)和更新日期(udate)。针对从头开始开发和维护开发两种场景,分析了使用@CreationTimestamp和@UpdateTimestamp注解在不同情况下的效果。在某些情况下,直接组装实体并调用save方法会导致cdate为空。解决方案包括使用SQL更新或在保存时手动设置日期值。
摘要由CSDN通过智能技术生成

前言

对于刚刚接触hibernate的开发者来说,它确实是一个伟大的东西,但如果针对修改不太明白的话,那确实挺伤的。首先修改是根据id查找到实体。然后和保存一样,也是用save进行存储。

针对一些cdate创建日期,udate更新日期。我们希望创建日期只在添加是实体的时候创建,但是修改实体的时候cdate不发生改变,但是udate是在每次更新实体的时候改变,包括添加实体的时候。

好了废话,不多说。开始吧!!!

再多说一句,下文分析两种开发情况展开的,一种是维护,一种是从头开发。
从头开始我这里的意思是根据hibernate实体类进行映射到数据库,然后自动生成表。
而我这里的维护是指,不能通过hibernate实体对象来创建表,只能通过sql填写。这两种所用到的注解可能稍微有点不一样的哦

1、从头开始开发,hibernate映射数据表

这个就很简单的了,很明显用到的注解就是,二者注解并没有对日期的默认值产生影响,说明是java的解决方式

@UpdateTimestamp //自动更新
@Temporal(TemporalType.TIMESTAMP)
private Date udate;

@Temporal(TemporalType.TIMESTAMP)
@CreationTimestamp //自动创建
private Date cdate;


1、所映射到数据库中的字段为,注意这里映射的为datetime,其实和自己sql创建的timestamp是一样的。
2、该注解并没对日期的默认值产生影响,说明是ja
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值