Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Benutzerdefinierten Konverter für DSL.val() von JOOQ verwenden

Lösung:Verwenden Sie DSL.val(java.lang.Object value, DataType<T> type) statt nur DSL.val(java.lang.Object value)

Es folgt das aktualisierte Code-Snippet

public void copy(UUID source, UUID target) {
    DataType<UUID> uuidType = SQLDataType.BINARY
                                .asConvertedDataType(new UuidBinaryConverter());
    jooq.insertInto(PERSON)
            .columns(PERSON.ID, PERSON.FNAME, PERSON.LNAME)
            .select(select(val(target, uuidType), PERSON.FNAME, PERSON.LNAME)
                   .from(PERSON)
                   .where(PERSON.ID.eq(source)))
            .execute();
}