【问题标题】:Does Spring Data JDBC support custom type convertersSpring Data JDBC 是否支持自定义类型转换器
【发布时间】:2019-04-06 19:22:30
【问题描述】:

我有一个具有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),因此仍然可以从默认映射中受益并在整个应用程序中使用该转换器。

【问题讨论】:

    标签: java oracle spring-data-jdbc


    【解决方案1】:

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

    JdbcCustomConversionsConverter 列表作为参数。

    【讨论】:

    • 谢谢,詹斯!顺便说一句,喜欢这个项目。
    • 很高兴你这样做。顺便说一句:随意为丢失的转换创建一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2022-09-26
    • 2012-03-23
    • 2019-03-13
    相关资源
    最近更新 更多