如何让hibernate 3.5.6-Final和内存hsqldb 2.0.0一起工作?

时间:2011-11-23 20:11:18

标签: hibernate hsqldb varchar

将pom.xml中的hsqldb依赖项从1.8.x升级到2.0.0+后,我开始收到此错误:

org.hsqldb.HsqlException: length must be specified in type definition: VARCHAR

显然,Hibernate根据HSQLDB 2要求生成了错误的CREATE TABLE表达式。我应该使用不同版本的Hibernate吗?哪一个? (但是,我宁愿暂时坚持使用3.5.6)。或者也许有一种方法可以在后向兼容模式下使用HSQLDB 2?

谢谢。

2 个答案:

答案 0 :(得分:6)

我建议您使用Maven上的最新HSQLDB 2.2.6。

您可以使用诸如

之类的URL覆盖VARCHAR大小强制执行
jdbc:hsqldb:mem:test;sql.enforce_size=false 

对于Hibernate版本,使用Hibernate 3.6.x系列的更新版本的HSQLDialect.java可以实现更好的兼容性。或者只升级到最新的3.6.8

答案 1 :(得分:0)

我想回答这个错误

org.hsqldb.HsqlException: length must be specified in type definition: VARCHAR

该错误告诉我们我们在SQL语句中使用NVARCHARVARCHAR而不指定长度

  

因此只需确保为NVARCHAR(255)

之类的列指定长度即可

希望这对您有帮助