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

标签 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:找不到能够从类型 [oracle.sql.TIMESTAMPTZ] 转换为类型 [java.util.Date] 的转换器

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

最佳答案

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

JdbcCustomConversionsConverter 列表作为参数。

关于java - Spring Data JDBC是否支持自定义类型转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53120420/

相关文章:

sql - 由于 SYS_OP_C2C 内部转换,Oracle SQL 执行计划发生变化

Spring Data Jdbc - 将内部类映射到表列

java - 无法找到 token 的访问 token

java - 无法访问公共(public)类中公共(public)静态类的公共(public)成员(全部在单独的 jar 中)

python - 应用程序与数据库常驻连接池

spring - Spring-fu-Kofu:无法连线 `NamedParameterJdbcTemplate`

postgresql - 如何使用 spring-data-jdbc 读/写 postgres jsonb 类型?

java - 串行线程限制

Java 错误 : java. lang.IllegalArgumentException:信号已被 VM 使用:INT

使用 IDE 工具作为 SQL Developer 或 Toad 的 Oracle 并行查询行为