列名为关键字时出现h2+hibernate错误



我的产品使用MySQL 5.7,我运行h2(MODE=MySQL(进行测试。我的连接字符串如下:

jdbc:h2:mem:ci_main;IGNORECASE=TRUE;MODE=MySQL;

我在MySQL57InnoDB方言中使用了Hibernate 5.6.3。

它一直与h2 1.4.196版本配合良好。但最近,我尝试将h2升级到2.0.204版本,SQL语句开始失败。错误是42001,抱怨列名value,我认为它是一个关键字。在这两个版本之间的某个时刻,h2对SQL语法的限制似乎比MySQL 5.7更严格。

如果我在写SQL语句,我可以引用列名。但是我使用hibernate(它在MySQL 5.7中运行良好(,我不想仅仅因为这个而更改列名。

有没有一种方法可以让h2更";兼容的";使用MySQL 5.7?

谢谢。

您可以将;NON_KEYWORDS=VALUE添加到JDBC URL中。

通常,除了;MODE=MySQL之外,还应该有;DATABASE_TO_LOWER=TRUE,以获得更好的兼容性。

相关内容

  • 没有找到相关文章

最新更新