7

我有一个实体,它有一个类型的文件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我可以为该类型创建一个自定义,它会正常工作。我只是想知道是否可以注册一个自定义转换器(在我的情况下 from oracle.sql.TIMESTAMPTZto java.util.Date),因此仍然可以从默认映射中受益并在整个应用程序中使用转换器。

4

1 回答 1

5

您可以通过从JdbcConfiguration(Spring Data JDBC v1.x) 或AbstractJdbcConfiguration(v2.x) 继承配置来注册自定义转换。然后覆盖方法jdbcCustomConversions()

JdbcCustomConversions将列表Converter作为参数。

于 2018-11-02T14:49:06.100 回答