Java 如文档所述,带下划线的spring数据属性名称不可转义

Java 如文档所述,带下划线的spring数据属性名称不可转义,java,spring,jpa,Java,Spring,Jpa,因此,我阅读了Spring文档,其中指出当属性名带有下划线(first\u name)时,应该使用另一个下划线(findByFirst\u name(…))在查询方法中转义并加下划线 但是,在实践中,这不起作用,我们会得到一个运行时错误,指出无法找到属性first。其他开发人员已在此处对此进行了记录: 但是,所提供的答案中没有一个能够解决这样一个事实,即这在实践中无法正常工作。大多数应答状态为从属性名称中删除下划线。。。。这并不总是一项容易或可能的任务。有人能证实他们真的做到了吗?我的猜测

因此,我阅读了Spring文档,其中指出当属性名带有下划线(
first\u name
)时,应该使用另一个下划线(
findByFirst\u name(…)
)在查询方法中转义并加下划线

但是,在实践中,这不起作用,我们会得到一个运行时错误,指出无法找到属性
first
。其他开发人员已在此处对此进行了记录:

但是,所提供的答案中没有一个能够解决这样一个事实,即这在实践中无法正常工作。大多数应答状态为从属性名称中删除下划线。。。。这并不总是一项容易或可能的任务。有人能证实他们真的做到了吗?我的猜测是Spring数据中有一个bug,但由于某些原因,还没有人承认这一点或提交bug


除了重命名数据库字段外,是否还有其他人成功解决此问题的方法?

我调试了spring data commons 1.9.2.RELEASE版本,并创建了以下pull请求,因为代码似乎无法处理此情况。有关更多信息,请查看以下链接:


在这里阅读:

太好了!感谢您确认并记录此问题,我以为我会丢失它(不是第一次)。感谢您的链接。我决定重命名所有数据库字段,以便它们不使用下划线。然而,现在我遇到了一个问题:一旦查询完成,spring使用的类加载器就无法在类路径中找到我的模型类(这是在play framework应用程序中)。我现在正在做一些研究,一旦我有了所有的信息,我会用所有的细节组成一个新的问题