spring - Spring Data Jpa 自定义存储库未找到任何属性
问题描述
我正在尝试创建一个存储库,该存储库的方法不符合通常JpaRepository
的@Query
注释。
我创建了一个自定义存储库接口:
public interface CustomVoteRepository {
List<VoteCountResult> countVotesForSession();
}
和实施:
@Repository
public class CustomVoteRepositoryImp implements CustomVoteRepository {
private JdbcTemplate jdbcTemplate;
public CustomVoteRepositoryImp(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public List<VoteCountResult> countVotesForSession() {
return jdbcTemplate.query("SELECT video_id, COUNT(votes.id) FROM votes WHERE session_id=2 GROUP BY video_id",
new CustomRowMapper());
}
}
但是,这给了我这个错误:
No property countVotesForSession found for type Vote!
我不明白为什么它试图在 Vote 类上映射一个属性。我知道它是为“自动生成”方法名称执行此操作的,但这应该是自定义方法名称。
我遇到过这篇文章:https ://www.mkyong.com/spring-data/spring-data-add-custom-method-to-repository/它解释了我在做什么,但它正在尝试映射自定义存储库的模型属性。
我确定我错过了一些愚蠢的事情。
谢谢!
编辑:
这是 VoteCountResult dto:
@Data
@AllArgsConstructor
public class VoteCountResult {
private String count;
private String title;
private String url;
}
解决方案
如果您将自定义方法名称更改为votesForSessionCount
怎么办?我认为这样你就不会面临方法名称冲突。
推荐阅读
- flutter - StreamBuilder 的快照虽然通过 Stream 发送,但没有数据
- javascript - 如何防止用户在 JavaScript 中向 ToDo 列表添加超过 4 个任务
- twitter - 使用一个帐户的 Twitter API 从另一个帐户发送推文?
- python-3.x - Python:不使用命令自动引发自定义异常 raise CustomException("Something Happened")
- python - 使用 OneHotEncoder() 的更好方法是什么?
- python - 运行烧瓶应用程序时出现“flask.cli.NoAppException”
- c++ - 如何验证用户输入的日期月份输入?
- python - 使用 matplotlib.animation.FuncAnimate 对具有周期性边界的多车道高速公路进行动画处理
- sql - 快速计算十分位数
- python - 使用 subprocess.check_output 运行 flake8