当前位置: 首页 > 知识库问答 >
问题:

Spring Data JDBC使用Boot 2.3.0生成错误的HSQLDB查询

闾丘博超
2023-03-14

我有一个使用Spring数据JDBC的Spring Boot项目。测试使用HSQLDB。当我尝试升级到Spring Boot 2.3.0时,我的存储库测试开始失败。

Spring Data JDBC现在显示为引用表名和列名。Spring Boot2.2.7附带的Spring Data JDBC版本没有。

https://github.com/mrgrew/boot230bug上的项目演示了这种差异。Spring Boot 2.3.0生成insert INTO“stats.counter”(“counter_name”)VALUES(?),但失败。Spring Boot 2.2.7生成insert INTO stats.counter(counter_name)VALUES(?),并成功。

共有1个答案

戚学
2023-03-14

看来我问得太快了...在我问这个问题的同一天出版了一份迁移指南!https://spring.io/blog/2020/05/20/migrating-to-spring-data-jdbc-2-0

迁移指南解释了我所观察到的情况:

Spring Data JDBC1.x主要使用表名和列名,而不改变它们。当您使用SQL关键字作为属性或实体名称时,或者当您试图在列名中使用某些特殊字符时,这会导致问题。

 类似资料:
  • 问题内容: 我正在创建一些类来处理各种类型的文件共享(nfs,afp,s3,本地磁盘)等中的文件名。当用户输入时,会得到一个标识数据源(即或)的字符串。 我从具有通用代码的基类中继承特定文件系统。我感到困惑的是对象创建。我有以下内容: 我以为这会很好用,但我读过的大多数文章都劝阻它。有没有更公认的方法来解决此问题? 问题答案: 我 不 认为用做你想要的东西是不正确的。换句话说,我不同意这个问题)的

  • 我试图使用JOOQ连接到HSQLDB,但我失败了,这里是错误消息: 此查询也会在HSQLDB Manager上失败(与JOOQ代码生成器的错误相同): 此查询工作正常: 我认为问题出在“cc”限定符上(在查询返回的“CONSTRAINT_NAME”字段上),这是HSQLDB错误吗? 我正在使用: HSQLDB 2.3.1 JOOQ 3.2.3 谢谢Ciccio

  • 问题内容: 我正在使用VB.NET和MySQL在MVC2中进行开发,尝试将简单的SQL查询转换为LINQ时遇到问题。 SQL查询: LINQ查询: 生成的错误是: 执行命令定义时发生错误。有关详细信息,请参见内部异常。 内部异常是: “字段列表”中的未知列“ GroupBy1.K1” 这是LINQ生成的SQL: 查看该查询,很容易找出导致错误的原因。简而言之,最内部的查询仅返回2列,而其上方的查询

  • 首先,我的目标不是让您理解我的UDF代码,这样我就可以实现我的目标(我知道它实现了),而是了解为什么在以后的查询中调用它生成的字符串后会出现错误。 我做了一个自定义UDF,代码是: 它的目标是计算组件的状态(它开始工作、停止工作的位置),并在开始和停止之间的所有行中放置一个标识符。1/0意味着工作/不工作组件。 例如,这个问题: 将返回(在此表中): 直到这里都是正确的。现在,我只是补充一句 按u

  • 我有以下代码片段 我尝试运行应用程序时出现以下错误(部分) 似乎type="num "没有被处理。我怀疑年龄int也可能是一个问题,因为它是一个int,但需要一个string。从sting到int的反向转换也可能是一个问题。 任何帮助是值得赞赏的。 谢谢

  • 问题内容: 我试图让到效果的,然后(在Windows 7; ñ 。一个透明安装了Cygwin所有X命令礼貌 ñ x的命令决心在命令行就好了)。 最初,我使用,但是想捕获stdout / stderr信息,所以我想使用,然后重写代码以使用它。但是,这破坏了一切。 重写的命令变为: 但是,运行此命令将产生以下错误: 重写的命令变为: 但是,运行此命令将产生以下错误: 如何使spawn运行可以正常使用的