Hibernate postgresql/hsqldb TEXT列不兼容问题

Nem*_*nja 11 postgresql hibernate hsqldb

我在使用Hibernate和PostgreSQL进行生产以及使用HSQLDB进行测试时遇到了问题.
我使用自上而下的方法让Hibernate创建数据库模式.
我也在使用注释; hibernate.cfg.xml的映射部分只包含像
<mapping class="package.subpackage.ClassName" />
Hibernate默认的字符串变量到PostgreSQL上的字符变量(255),这在某些情况下对我来说还不够,所以我必须手动重新定义一些列
@Column(columnDefinition = "TEXT").
但是,TEXT类型对于HSQLDB无效,因此无法创建这些表.

谁能帮忙解决这个问题?

Don*_*oby 10

处理此特定问题的最简单方法可能是根本不使用columnDefinition,而是使用(例如)显式指定列长度

@Column(length=10000)
Run Code Online (Sandbox Code Playgroud)

也可能是你可以用@Lob(type = LobType.CLOB)映射它

但我不确定在HSQLDB中是否正确支持.在Postgres中,它应该为您提供TEXT类型.


G. *_*cki 8

同意@fredt.TEXT数据类型不是标准SQL类型,而是某些引擎支持的扩展.

为了让PostgreSQL的兼容模式下使用sql.syntax_pgs=true的连接参数.


fre*_*edt 6

HSQLDB 2.1及更高版本具有PostgreSQL兼容模式,并在此模式下支持TEXT数据类型.