我试图在我的spring boot应用程序上执行一些集成测试。发现内存数据库很适合我们的需求。决定使用h2数据库。目前我们正在使用mysql 5.5版本。我从mysql中转储了create查询。示例查询:-
CREATE TABLE `TEST` (
`id` varchar(20) NOT NULL,
`test` enum('','of') NOT NULL,
PRIMARY KEY (`id`)
);
我在pom.xml中使用以下依赖项:-
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
<scope>test</scope>
</dependency>
如果我在h2上执行此查询,则会出现以下错误:-
Empty enums are not allowed; SQL statement:
我在mysql模式下使用h2,连接方式为:-
jdbc:h2:file:~/test;MODE=MYSQL
有什么我可以做的吗?如果我的数据源是mysql,是否还有其他任何与mysql兼容的好的内存数据库。我听说过mariaDB4j:mariaDB4j。
答案 0 :(得分:0)
这可能是一个错误,针对空值的规则似乎破坏了连接字符串中要求的mysql兼容模式。当然,对于H2纯模式它是有道理的,但这不是用例。
答案 1 :(得分:-1)
错误非常清楚,您不能在枚举列中使用空值。使用一个值表示空,而不是
[...]
`test` enum('','of') NOT NULL,
[...]
使用
[...]
`test` enum('--','of') NOT NULL,
[...]
或
[...]
`test` enum(' ','of') NOT NULL,
[...]