我正在尝试创建一个存储库,该存储库的方法不适合带有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;
}
答案 0 :(得分:0)
如果将自定义方法名称更改为votesForSessionCount
怎么办?我认为这样您就不会遇到方法名称冲突。