Ich verwende gerade JPA 3.2 mit EclipseLink 4 und einer SQLite Datenbank und will eine Entität mit LocalDateTime persistieren. Es scheint den richtigen Zeitstempel als Zahl zu speichern, aber beim Laden der Entität ist ein falscher Wert zu sehen. Der Zeitstempel 1698421155669 wird z.B. als +55790-10-28T06:21:09 geladen.
Das Attribut ist so definiert:
Ich hab auch versucht einen AttributeConverter hinzuzufügen, aber der scheint gar nicht erkannt zu werden.
Das Problem scheint nur bei SQLite aufzutreten, mit H2 wird das wohl richtig geladen.
Woran kann das liegen und kann man das auch als String persistieren?
Das Attribut ist so definiert:
Java:
@Column(nullable = false)
public LocalDateTime timeOrdered = LocalDateTime.now();
Ich hab auch versucht einen AttributeConverter hinzuzufügen, aber der scheint gar nicht erkannt zu werden.
Java:
@Converter(autoApply = true)
public class LocalDateTimeAttributeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
@Override
public Timestamp convertToDatabaseColumn(LocalDateTime locDateTime) {
return locDateTime == null ? null : Timestamp.valueOf(locDateTime);
}
@Override
public LocalDateTime convertToEntityAttribute(Timestamp sqlTimestamp) {
return LocalDateTime.now();
//return sqlTimestamp == null ? null : sqlTimestamp.toLocalDateTime();
}
}
Das Problem scheint nur bei SQLite aufzutreten, mit H2 wird das wohl richtig geladen.
Woran kann das liegen und kann man das auch als String persistieren?
Zuletzt bearbeitet: