JodaTime mit JPA-, PostgreSQL- und NULL-Werten

8

Ich versuche, JodaTime DateTime-Felder mit JPA zu PostgreSQL beizubehalten, aber Probleme mit Null-Zeigern auf Datenbank-NULL-Werte zu haben.

Ich arbeite mit der NetBeans 7 beta 2 IDE. Die Persistenzimplementierung ist EclipseLink 2.2.0 und ich verwende einen EclipseLink Converter, um das Mapping zum Laufen zu bringen. Hier ist die Erklärung meines Feldes:

%Vor%

Die Konverterklasse:

%Vor%

Dies funktioniert gut, solange ein tatsächlicher DateTime-Satz vorhanden ist. Aber sobald es nicht gesetzt ist, scheint EclipseLink einen String-Typ anzunehmen und postgresql beginnt sich darüber zu beschweren, dass der Wert des Typ-Zeichens variiert. Ich nehme an, dies liegt daran, dass die Konverterklasse anstelle eines Datumsobjekts einen Nullzeiger zurückgibt und EclipseLink auf einen Standardwert zurückgreift.

Gibt es eine Möglichkeit, dies zu erreichen, ohne auf plain java.util.Date zu wechseln?

    
Eelke 06.03.2011, 10:24
quelle

3 Antworten

7

Wenn ein @Converter verwendet wird, kennt EclipseLink den Typ nicht, daher müssen Sie ihn initialisieren.

In Ihrer initialize(DatabaseMapping dm, Session sn) -Methode müssen Sie den Typ festlegen,

%Vor%     
James 07.03.2011, 14:57
quelle
1

Dieser Artikel: Ссылка hat mir einige nützliche Informationen über das lokale Datum gegeben zu der db und es hatte einige wichtige Unterschiede zu Ihrer DateTimeConverter-Implementierung (insbesondere die Implementierung von AttributeConverter nicht nur Konverter und die Annotation von 'Converter' ist auf Klassenebene

    
janoulle 21.09.2016 02:23
quelle
0

Wir haben einen anderen Ansatz gewählt.    (und Entschuldigung für unsere Codierungsstandards!)

Im POJO haben wir:

%Vor%

In package.info haben wir:

%Vor%

Wir haben dann die Klasse JodaDateTimeType

%Vor%     
Bill Comer 07.03.2011 14:58
quelle