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


    先上图

    图1:实体类1

    图2:实体类2

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

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

    测试图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的解决方式添加一种吧,但是就是不明白为什么会这样。

  • 相关阅读:
    javascript 作用域、预解析、变量提升
    用最简洁代码实现indexOf方法
    JavaScript 中的 RegExp 对象
    不能使用任何循环控制语句和迭代器的情况下实现一个0到1000的数组赋值
    IDEA搭建SSM框架教程 从零开始 SSM+Maven框架搭建教程
    Redis缓存 集成SSM框架
    JavaWeb拦截器
    log4j.properties配置文件
    C#WinForm,TCP调试工具
    C#如何实现控件移动拖动
  • 原文地址:https://www.cnblogs.com/yzyBalance/p/13493996.html
Copyright © 2020-2023  润新知