gpt4 book ai didi

java - 使用 HSQL 进行 Hibernate - 未使用 hbm2ddl 创建表

转载 作者:行者123 更新时间:2023-12-01 12:41:31 25 4
gpt4 key购买 nike

我正在尝试使用 HSQLDB(内存模式)运行数据库测试,但 hbm2ddl 不会创建结构。它的行为就像使用了错误的 SQL 方言,但日志显示方言设置正确:

HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
HHH000412: Hibernate Core {4.3.1.Final}
HHH000206: hibernate.properties not found
HHH000021: Bytecode provider name : javassist
Creating new JDBC DriverManager Connection to [jdbc:hsqldb:mem:sample]
HHH000400: Using dialect: org.hibernate.dialect.HSQLDialect
HHH000399: Using default transaction strategy (direct JDBC transactions)
HHH000397: Using ASTQueryTranslatorFactory
HV000001: Hibernate Validator 5.1.0.Final
HSEARCH000034: Hibernate Search 4.5.0.Final
HHH000227: Running hbm2ddl schema export
HHH000389: Unsuccessful: create table .dictionary (id bigint generated by default as identity (start with 1), created_on timestamp not null, status varchar(255) not null, updated_on timestamp not null, version_created_by varchar(250), description varchar(250) not null, key varchar(100) not null, scope varchar(100), parent_id bigint, primary key (id))
ERROR o.h.tool.hbm2ddl.SchemaExport - unexpected token: TABLE : line: 2

后来,在测试中构建其他 SQL 语句时,Hibernate 会发出非常幽默的异常,例如:

java.sql.SQLSyntaxErrorException: unexpected token: FROM required: FROM

我真的不知道是什么原因导致这种行为,尤其是。该日志确认 SQL 方言与所使用的数据库匹配。

最佳答案

事实证明,在无模式数据库(就像内存中的 HSQL)中,您不能设置 Hibernate 属性

<prop key="hibernate.default_schema">${hibernate.default_schema}</prop>

以任何方式(将其留空视为设置)。

我的设置是为了生产和测试而创建的,在各自的环境中,属性 hibernate.default_schema 设置为架构名称或留空。

感谢您的提示,帮助我走上正轨。

关于java - 使用 HSQL 进行 Hibernate - 未使用 hbm2ddl 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com