2
我的實體有這個屬性...JPA創建列LocalDateTime如DATETIME2 SQLServer的在2008年
@Convert(converter = LocalDateTimeAtributeConverter.class)
@Column(name="dthr_ult_atualizacao")
private LocalDateTime ultimaAtualizacao;
在服務器中,由JPA創建的列:
dthr_ult_atualizacao (datetime2(7), null)
通過代碼,我保存該值低於此列:
2016-05-09T15:20:00.357
當我做一個選擇直接在數據庫中,該值爲correc T:
2016-05-09 15:20:00.3570000
但是當我通過JPA恢復此值,該值是錯誤的:
2016-05-07T15:20:00.357
請注意,那天是錯誤的兩天。
所以,如果我手動更改數據類型,一切正常。哪裏不對?
我的轉換器:
import java.time.LocalDateTime;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter
public class LocalDateTimeAtributeConverter implements AttributeConverter<LocalDateTime, java.sql.Timestamp> {
@Override
public java.sql.Timestamp convertToDatabaseColumn(LocalDateTime entityValue)
{
if (entityValue != null) {
return java.sql.Timestamp.valueOf(entityValue);
}
return null;
}
@Override
public LocalDateTime convertToEntityAttribute(java.sql.Timestamp databaseValue) {
if (databaseValue != null) {
return databaseValue.toLocalDateTime();
}
return null;
}
}
我使用Microsofr jdbc42與wildfly 9
謝謝。就是它。你解決了我的問題。 –