背景: 在使用jpa的实体对象, 保存到数据库时发现created_tie 总是不正确相差4个月 如果是时区问题, 应该只会是8小时 仔细查看Entity类代码 @Column(name = "created_time", updatable = false, columnDefinition = "timestamptz") @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")// jackson的序列化格式 @CreationTimestamp // 用来转换 Date 到数据库不同的格式 private Date createdTime;
由于主键id的是通过其他方法生成的, 所以导致在使用save方法时, 将对象判断为 不是新实体
entityInformation.isNew(entity)这个方法就一直是false了
再因为@Column updatable = false, 更新数据时, 跳过这个字段
所以产生了这个问题
为什么相差4个月, 原因暂未找到
=======================
insertable 和 updatable 跳过这个字段的对应DB操作
=======================
@DynamicInsert 和 @DynamicUpdate
jpa默认更新每个字段, 加上注解后字段如果是null值就会跳过 生成动态sql