PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

JOOQ erzwungene Typencodegenerierung

Der <name/> -Element Ihres <customType/> sollte sich auf <U> beziehen Typ (Benutzertyp) Ihres Converter<T, U> , nicht an <T> Typ (Datenbanktyp). Also wenn du das schreibst:

<customTypes>
  <customType>
   <name>java.sql.Timestamp</name>
   <converter>com.plannow.jooq.converters.DateTimeConverter</converter>
  </customType>         
</customTypes>

Dann registrieren Sie eigentlich nur einen Converter<Timestamp, Timestamp> . Versuchen Sie stattdessen Folgendes:

<customTypes>
  <customType>
   <name>org.joda.time.DateTime</name>
   <converter>com.plannow.jooq.converters.DateTimeConverter</converter>
  </customType>         
</customTypes>

Beachten Sie, dass Ihr Konverter auch null korrekt verarbeiten sollte Werte:

@Override
public DateTime from(Timestamp t)     {
    return t == null ? null : new DateTime(t);
}

@Override
public Timestamp to(DateTime u) {
    return u == null ? null : new Timestamp(u.getMillis());
}