【发布时间】: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