记使用SpringDataMongonDb时,dao方法命名的一个已解决但不知道为什么的bug

先上图

图1:实体类1

记使用SpringDataMongonDb时,dao方法命名的一个已解决但不知道为什么的bug

图2:实体类2

记使用SpringDataMongonDb时,dao方法命名的一个已解决但不知道为什么的bug

图3:对应实体类1的dao层

记使用SpringDataMongonDb时,dao方法命名的一个已解决但不知道为什么的bug

图4:对应实体类2的dao层

记使用SpringDataMongonDb时,dao方法命名的一个已解决但不知道为什么的bug

测试图3的dao层,正常运行,没什么问题,方法名是按照表字段进行驼峰命名法,这也是springdata的命名规则

测试图4的dao层,bug:org.springframework.data.mapping.context.invalidpersistentpropertypath:no property ‘DType‘ found on class xxx.xxx.xxx! did you mean: dType,Dtype?

不清楚为什么这样,图4中方法名idea给springdata的提示,谁都会觉得这点肯定不错吧,但是偏偏就是这一点错了,红色三角符号标的大写字母D变成小写就正常运行了,(也就是说要写成findBydType()即可),可这样就不是驼峰命名,

而且不符合springdata方法的命名规则,说实话不知道什么原因,命名图3按照idea的提示和命名法是正常的,两个实体类命名方式也是一致的,属性名都是首字母小写,但是dao层命名方式却一个要小写一个要大写,

(声明一下@Field的注解去掉和带上都不会影响这个bug的有无,已测试。)

所以只能把第二个dao层方法使用非完全驼峰命名也就是拼接属性字段名用小写才不报错,,,这到底是idea的bug还是springDataMongonDB的bug也搞不明白,所以特别在这里记录一下。

上边的这个bug,我自己的真实原因和我在解决期间在网上找的报错原因全部不一样,也算是将这个bug的解决方式添加一种吧,但是就是不明白为什么会这样。

 

记使用SpringDataMongonDb时,dao方法命名的一个已解决但不知道为什么的bug

上一篇:【熟能生巧】使用Screw快速生成数据库文档


下一篇:MySQL 规约(转自阿里巴巴 Java 开发手册)