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

Evg*_*rov 5 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...
}
Run Code Online (Sandbox Code Playgroud)

数据库是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.TIMESTAMPTZto java.util.Date),因此仍然可以从默认映射中受益,并在整个应用程序中使用该转换器。

Jen*_*der 5

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

JdbcCustomConversions将列表Converter作为参数。