【问题标题】:Spring Data JDBC custom query parameter converterSpring Data JDBC 自定义查询参数转换器
【发布时间】:2020-03-30 11:08:41
【问题描述】:

我正在尝试向 Spring Data JDBC CrudRepository 添加自定义查询,以允许通过备用自然键查找实体。该实体有一个 ID,在本例中为 Long,以及一个自然键,即 Reference 类型(基础类型为 UUID)。

我已经创建并注册了从引用到 UUID 的自定义转换器,反之亦然,并且希望在通过引用查找实体时使用它们。在从数据库中获取和存储实体时可以进行转换 (Postgres 12.2)。

我无法做到的是定义一个自定义方法,通过它的引用找到实体。

这和我的情况类似:

public interface OrderRepository implements CrudRepository<Order, Long> {

    @Query("select o from Order o where o.reference = :reference")
    Optional<Order> findByReference(@Param("reference") Order.Reference reference);
}

可以这样实现吗?我正在使用最新版本的 Spring Data JDBC (1.1.6)。 我想避免让查询接受基础类型(在这种情况下为 UUID)。

如果使用自定义查询无法做到这一点,有哪些可用选项? 我考虑过可能将 MyBatis 与 Spring Data JDBC 一起使用?

【问题讨论】:

    标签: spring type-conversion spring-data spring-data-jdbc


    【解决方案1】:

    这是一个known issue,它是用2.0 M3 实现的,即available from Springs Milestone repository。请试一试。

    注意:2.0 M3 引入了Dialect,但只有 2.0 RC1` 才提供正确的自动检测,该 RC1 将于今天 2020-03-31 发布。您可能会等待它来省去一些麻烦

    【讨论】:

    • 感谢您的回答,我喜欢您使用 Data JDBC 所做的工作
    • ☺️谢谢,我们尽力了
    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 2020-11-23
    • 2020-11-26
    • 2020-04-12
    • 2022-09-26
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多