JPA里自定义SQL查询的一些问题

接着上次的图书管理系统

还书的时候不仅要在还书的数据表添加新纪录
还要去把借书表中对应的内容删除

但是因为前端我写的时候只返回了book_id和client_id
所以在还书的Service里还要根据这两个id去查出对应的借书记录,并删掉

这里可以用Spring data 里的自定义查询来实现
自定义查询以及Spring data JPA的使用方法可以在这里 有相关的介绍

因为我在设定Rent这个实体类了里设定的是book_id和client_id
所以在机智的IDEA的帮助下,我写了这么一句在repository里写了这么一句

 
      
1
 
      
Rent findByClient_idAndBook_id(Integer client_id, Integer book_id);

哈哈,这不是简单吗
然后运行
报错
哦,我天呐,来看看控制台的信息吧

 
      
1
 
      
No property client found for type Rent!

我来简单翻译下
在Rent里找不到client属性

client? 不是client_id 吗

经过查找,终于在文档里发现 一个下划线 _ 会被认为是And的意思
所以findByClient_idAndBook_id 就被理解为 根据client 和 id 和 book 和 id 来查找
然后系统在Rent里找不到client 所以就报错了

该怎么办呢?

嗯,所以命名时候就不要用_ 下划线就好了(IDEA 还挺 ‘机智’的)
现在去改应该还来的及
不说了,现在去改了..

你可能感兴趣的:(Spring,数据库)