繁体   English   中英

带有忽略大小写的 JDBC URL 不适用于 H2 数据库连接

[英]JDBC URL with ignorecase is not working for H2 database connection

我试图在 SQL 模式下使用 h2 数据库。 我能够创建一个模式,全部大写,并在其下创建一些表。 但是,我在 hibernate 上运行的应用程序似乎无法正常工作,除非我在所有大写中都匹配架构名称。 我认为可以在 JDBC 连接字符串中使用 IGNROECASE=TRUE 配置 h2。 我错过了什么吗?

IGNORECASE设置与数据库对象的名称无关,它以奇怪的方式将CHARACTER VARYING列的排序规则更改为不区分大小写。

根据 SQL 标准的要求,具有默认设置的 H2 和许多其他 DBMS 中的未加引号的标识符被转换为大写。

如果您使用 MySQL 或 PostgreSQL 兼容模式,您通常需要指定DATABASE_TO_LOWER=TRUE ,因为这些 DBMS 将不带引号的标识符转换为小写。 您可以在此处找到有关这些兼容模式的更多详细信息: https://h2database.com/html/features.html#compatibility

在某些情况下,您可能还需要CASE_INSENSITIVE_IDENTIFIERS=TRUE

从 H2 1.4.198 起,这两个设置都可用。 在旧版本中,您可以改用DATABASE_TO_UPPER=FALSE 但不要在较新的版本中使用此设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM