当前位置: 首页 > 知识库问答 >
问题:

Spring数据 JDBC 自定义查询参数转换器

夏侯兴学
2023-03-14

我正在尝试将自定义查询添加到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一起使用?

共有1个答案

王才
2023-03-14

这是一个已知问题,它是通过2.0 M3实现的,该M3可从Springs Milestone存储库获得。请试一试。

注意:2.0 M3引入了Dialect,但正确的自动检测仅附带2.0 RC1',它将于今天2020-03-31发布。您可以等待它来节省您的一些头痛

 类似资料:
  • 在我的数据库中,我有一个具有以下属性的表“CITA”:id,fecha\u hora,description,id\u empleado,id\u cliente。 我还有一个Spring JPA存储库: 我需要这个查询: 我的问题是我不知道我应该把它放在哪里来还给我像地图这样的东西 因为它不起作用: 编辑 如果我试图从我的REST控制器调用estadistic as(),我有一个错误。 这是我的

  • 在我的Spring Data存储库中,我(必须)使用注释使用自定义查询。我知道我可以限制这样命名查询中的结果数量

  • 我有两个实体: ffice.java 电影JAVA 和以下存储库: 现有的查找方法像左连接一样工作,这正是我需要的。但是如何在不保存电影对象的情况下保存周BoxOffice对象?我真的不知道创建周刊BoxofficeLite的想法。现在它给了一个例外 组织。springframework。刀。InvalidDataAccessApiUsageException:org。冬眠TransientPro

  • 问题内容: 如何接受自定义类型查询参数? 上面的行在启动服务器时给出错误 问题答案: 查看有关注入的可接受类型的文档。(这同样适用于所有其他注释) 是原始类型 有一个接受单个String参数的构造函数 有一个名为或的静态方法,该方法接受单个String参数(例如,参见) 已注册ParamConverterProvider JAX-RS扩展SPI的实现,该扩展返回一个ParamConverter实例

  • 我需要创建一个jpa自定义查询,使用几个表上的联接来获取记录。 以下是我想要达到的目标: 对很少的参数进行数据排序(在运行时决定) 使用where子句进行筛选(在运行时决定) 示例: @query(value=“从用户a中选择a.name,b.city,c.reason在a.id=b.id上连接地址b在a.id=c.id上连接测试c 我无法为其创建常规查询。 任何其他的方法对我来说也是可以接受的来

  • 我通过扩展将REST数据与Panache一起用于生成JAX RESTful Web服务。在Spring land中,有一种query builder机制,允许Spring数据存储库根据自定义方法签名的名称和返回类型生成SQL查询。 我试图用Panache来实现同样的事情,但到目前为止没有成功。