Seata这问题什么原因?
Field not equals, name in_date, old value 2018-01-01T00:00, new value 2018-01-01 00:00:00.0
这个问题是由于 Spring Data JPA 在插入一条记录时,会将字符串类型的日期转换成 UTC 时区的时间戳。如果您使用的是非 UTC 时区,那么在查询这条记录时,就会出现 Field not equals 的错误。
要解决这个问题,您可以使用 Spring Data JPA 的 @Convert 注解,将字符串类型的日期转换成您想要的时区。例如,您可以使用以下代码来将字符串类型的日期转换成 GMT+8 时区的时间戳:
@Convert(converter = StringToDateConverter.class)
@Column(nullable = false)
private Date inDate;
public static class StringToDateConverter implements AttributeConverter {
@Override
public Date convertToDatabaseColumn(String date) {
return new Date(date.getTime());
}
@Override
public String convertToEntityAttribute(Date date) {
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。