Spring Data JDBC不生成派生查询

Posted

技术标签:

【中文标题】Spring Data JDBC不生成派生查询【英文标题】:Spring Data JDBC not generating derived Query 【发布时间】:2019-11-23 22:37:34 【问题描述】:

我正在使用 SpringBoot 2.2.1.RELEASE 自动引入的 Spring Data JDBC (v1.1.1)。对于下面的存储库,该方法应在启动时自动派生查询。

interface AccountRepository extends CrudRepository<Account, Long> 
    long countByLastName(String lastName);
...

相反,我得到了这个..

Caused by: java.lang.IllegalStateException: No query specified on countByLastName
    at org.springframework.data.jdbc.repository.support.JdbcRepositoryQuery.determineQuery(JdbcRepositoryQuery.java:200) ~[spring-data-jdbc-1.1.1.RELEASE.jar:1.1.1.RELEASE]

我的实体看起来像..

public class Account 

    @Id
    private Long id;
    private final String firstName;
    private final String lastName;

知道我为什么会遇到这个问题吗?

【问题讨论】:

【参考方案1】:

2.0.0 版附带了对 Spring Data JDBC 查询派生的支持。

请注意,查询派生目前仅支持存储在聚合根表中以进行过滤和排序的属性。

【讨论】:

我更新了答案,因为 Spring Data JDBC 最近添加了对查询派生的支持。

以上是关于Spring Data JDBC不生成派生查询的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data JDBC - 如何使用自定义 ID 生成

Spring-data-jpa 投影生成查询不正确

基于spring-boot-data-jdbc的RowMapper实例的初始化配置,配置内容和实体类的代码由测试类生成

Spring Data:休眠查询缓存不适用于派生查询

Spring Data Jpa项目使用ManyToMany关系时的生成查询

Spring Data JPA - 使用 REST 调用上的查询参数从方法名称生成查询