接着上次的图书管理系统
还书的时候不仅要在还书的数据表添加新纪录
还要去把借书表中对应的内容删除
但是因为前端我写的时候只返回了book_id和client_id
所以在还书的Service里还要根据这两个id去查出对应的借书记录,并删掉
这里可以用Spring data 里的自定义查询来实现
自定义查询以及Spring data JPA的使用方法可以在这里 有相关的介绍
因为我在设定Rent这个实体类了里设定的是book_id和client_id
所以在机智的IDEA的帮助下,我写了这么一句在repository里写了这么一句
|
|
哈哈,这不是简单吗
然后运行
报错
哦,我天呐,来看看控制台的信息吧
|
|
我来简单翻译下
在Rent里找不到client属性
client? 不是client_id 吗
经过查找,终于在文档里发现 一个下划线 _ 会被认为是And的意思
所以findByClient_idAndBook_id 就被理解为 根据client 和 id 和 book 和 id 来查找
然后系统在Rent里找不到client 所以就报错了
该怎么办呢?
嗯,所以命名时候就不要用_ 下划线就好了(IDEA 还挺 ‘机智’的)
现在去改应该还来的及
不说了,现在去改了..

本文分享了一次使用SpringData JPA进行数据库操作时遇到的问题:因前端返回的ID与实体类中属性命名差异导致的查询失败案例。通过调整命名规则解决了系统错误,并介绍了如何避免下划线引起的误解。

1万+

被折叠的 条评论
为什么被折叠?



