Tengo una entidad que ha presentado un tipo java.util.Date
(o Timestamp
, no importa para el caso).
public class StatusReason {
@Column("SRN_ID")
private Long id;
@Column("SRN_CREATOR")
private String creator;
@Column("SRN_REASON")
private String reason;
@Column("SRN_STATUS")
private String status;
@Column("SRN_TIMESTAMP")
private Date timestamp;
//getters, setters, etc...
}
La base de datos es Oracle y la columna correspondiente es de tipo TIMESTAMP(6) WITH TIME ZONE
Cuando llamo a cualquiera de los por defecto findById
o findAll
métodos del repositorio me sale: ConverterNotFoundException: No converter found capable of converting from type [oracle.sql.TIMESTAMPTZ] to type [java.util.Date]
.
Puedo crear una costumbre RowMapper
para el tipo y no tendrán ningún problema. Me preguntaba si es posible registrar un convertidor de medida (en mi caso de oracle.sql.TIMESTAMPTZ
a java.util.Date
) por lo que todavía puede beneficiarse de la asignación predeterminada y utilizar el convertidor a través de toda la aplicación.
Puede registrar las conversiones personalizado heredando su configuración desde JdbcConfiguration
y sobrescribir el método jdbcCustomConversions()
.
JdbcCustomConversions
tiene una lista de Converter
como argumento.