Spring Data JDBC是否支持自定义类型转换器

时间:2018-11-02 14:27:17

标签: java oracle spring-data-jdbc

我有一个实体,该实体的文件类型为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

当我调用存储库的任何默认findByIdfindAll方法时,都会得到: ConverterNotFoundException: No converter found capable of converting from type [oracle.sql.TIMESTAMPTZ] to type [java.util.Date]

我可以为该类型创建自定义RowMapper,它将正常工作。 我只是想知道是否可以注册自定义转换器(在我的情况下是从oracle.sql.TIMESTAMPTZjava.util.Date),以便仍然可以从默认映射中受益并在整个应用程序中使用该转换器。

1 个答案:

答案 0 :(得分:3)

您可以通过从JdbcConfiguration继承配置并覆盖方法jdbcCustomConversions()来注册自定义转换。

JdbcCustomConversionsConverter的列表作为参数。