Cli*_*sch 23 mysql hibernate hsqldb
我有一个使用mysql数据库的应用程序,但我想在hsqldb内存数据库中运行应用程序的单元测试.问题是我的一些可持久模型对象有一些字段,我已经注释为columnDefinition ="TEXT"来强制mysql来满足长字符串值,但现在hsqldb不知道TEXT的含义.如果我将其更改为CLOB,那么hsqldb很好但是mysql失败了.
是否有标准列定义,我可以用于与mysql和hsqldb兼容的长字符串?
bre*_*777 30
对我有用的是通过将连接URL更改为jdbc来启用MySQL兼容模式:hsqldb:mem:testdb; sql.syntax_mys = true
对于PostgreSQL TEXT列和HQLnate的HSQLDB,您可以使用本文中提供的相同解决方案:
Hibernate postgresql/hsqldb TEXT列不兼容问题
由于HSQLDB允许您将TEXT定义为TYPE或DOMAIN,如果您在通过Hibernate使用HSQLDB进行每次测试运行之前了解如何执行下面的语句,这可能是一个解决方案.
CREATE TYPE TEXT AS VARCHAR(1000000)
Run Code Online (Sandbox Code Playgroud)
HSQLDB 2.1及更高版本的更新:此版本支持MySQL兼容模式.在此模式下,支持MySQL TEXT类型并将其转换为LONGVARCHAR.LONGVARCHAR默认为长VARCHAR,但属性(sql.longvar_is_lob)允许将其解释为CLOB.看到:
http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_sql_conformance
http://hsqldb.org/doc/2.0/guide/compatibility-chapt.html#coc_compatibility_mysql
| 归档时间: |
|
| 查看次数: |
13041 次 |
| 最近记录: |