我有一个实体,该实体的文件类型为java.util.Date
(或Timestamp
,对于这种情况无关紧要)。
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...
}
数据库为Oracle,对应列的类型为TIMESTAMP(6) WITH TIME ZONE
当我调用存储库的任何默认findById
或findAll
方法时,都会得到:
ConverterNotFoundException: No converter found capable of converting from type [oracle.sql.TIMESTAMPTZ] to type [java.util.Date]
。
我可以为该类型创建自定义RowMapper
,它将正常工作。
我只是想知道是否可以注册自定义转换器(在我的情况下是从oracle.sql.TIMESTAMPTZ
到java.util.Date
),以便仍然可以从默认映射中受益并在整个应用程序中使用该转换器。
答案 0 :(得分:3)
您可以通过从JdbcConfiguration
继承配置并覆盖方法jdbcCustomConversions()
来注册自定义转换。
JdbcCustomConversions
以Converter
的列表作为参数。