我正在尝试向Spring添加一个自定义查询,以允许通过备用自然键查找实体。实体有一个ID,在本例中它是一个长的、自然的键,它的类型是引用(基础类型是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);
}可以这样做吗?我正在使用的最新版本(1.1.6)。我希望避免使用接受底层类型(本例中为UUID)的查询。
如果这不能通过使用自定义查询来完成,那么可用的选项是什么?我考虑过在Spring中使用MyBatis吗?
发布于 2020-03-31 05:40:45
这是一个已知问题,它是用2.0 M3 (即可从Spring里程碑存储库获得 )实现的。请试试看。
注意: 2.0 M3引入了Dialect,但正确的自动检测只附带2.0RC1,这将于今天发布- 2020-03-31。你可以等着这样才能避免头痛。
https://stackoverflow.com/questions/60929243
复制相似问题