翻车现场:
在IDEA进行MongoDB进行自定义查询操作时,出现的Bug:
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property name found for type Teacher! Did you mean 'age'?
报错:
错误代码:
测试类:
TeacherRepository:
原因:
上面的代码,好像一眼看去,没什么问题, 但是在不知道的情况下,已经出问题了,
其中: 接口的命名: findByNameAndAge 中的name和age 与实体类中的不一致,导致的问题
在Spirng Data MongoDB中, 如果进行自定义方法查询,是有规则限制的, 在MongoRepository下的接口命名是不能随意命名的, 其中的变量需要与实体类中的变量名一致
解决:
只要把原本 findByNameAndAge 改成 findByUsernameAndAge 即可
注意:
除了字段名保持一致, 其他的也要根据 Spring Data mongodb提供自定义方法的规则: 如下:
按照findByXXX,findByXXXAndYYY、countByXXXAndYYY等规则定义方法,实现查询操作。
看完恭喜你,又知道了一点点!!!
你知道的越多,不知道的越多!
~感谢志同道合的你阅读, 你的支持是我学习的最大动力 ! 加油 ,陌生人一起努力,共勉!!