初始化时在H2数据库中设置别名

问题描述 投票:0回答:0

我从生产代码中命名了查询,它使用 Oracles

SUBSTR()
方法。我怎样才能让这些电话与 H2s
SUBSTRING()
一起工作?

我正在尝试使用 H2 进行测试。我创建了

hibernate.cfg.xml
的副本并对其进行了更改,以便它连接到 H2 数据库。
hibernate.cfg.xml
引用一些
*.hbm.xml
文件,其中一些包含命名查询,使用 Oracles
SUBSTR()
.

我看过

CREATE ALIAS
http://h2database.com/html/commands.html#create_alias)的文档,但想不出如何让它足够早地工作,以便新命令是甚至在 Hibernate 初始化期间可用。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Jun 24, 2019 4:01:01 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.0.9.Final}
Jun 24, 2019 4:01:01 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000205: Loaded properties from resource hibernate.properties: {hibernate.bytecode.use_reflection_optimizer=false}
Jun 24, 2019 4:01:01 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jun 24, 2019 4:01:02 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
Jun 24, 2019 4:01:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Jun 24, 2019 4:01:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [org.h2.Driver] at URL [jdbc:h2:mem:test;MODE=Oracle]
Jun 24, 2019 4:01:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=sa, password=****}
Jun 24, 2019 4:01:03 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Jun 24, 2019 4:01:03 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Jun 24, 2019 4:01:03 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
Jun 24, 2019 4:01:05 PM org.hibernate.internal.SessionFactoryImpl <init>
ERROR: HHH000177: Error in named query: findKindIdXXXXXXXXX
org.hibernate.QueryException: undefined alias: SUBSTR [SELECT
            xxx.yyyyy, SUBSTR(nmvz.eigKennzeichen, 2, 1)
        FROM
[...]
        WHERE
[...]

如何在 hibernates 初始化时尽早定义别名,以便此错误消息消失?

java oracle hibernate alias h2
© www.soinside.com 2019 - 2024. All rights reserved.