【发布时间】:2021-04-18 04:11:48
【问题描述】:
我有使用 pgsql 作为数据库的 spring boot 应用程序。我正在为 api 和测试用例编写测试用例,我正在使用 h2 db。我有多个实体,其中有多个枚举。对于我们有的测试用例
spring.jpa.hibernate.ddl-auto = create-drop
当休眠从实体创建表时,它给出未知数据类型:“enum_type1”。
我从这个问题中得到了一个参考: How to fake ENUM columns in the H2 database for play unit testing?
所以我更新了我的属性如下:
spring.datasource.url= jdbc:h2:mem:test;MODE=PostgreSQL;INIT=CREATE DOMAIN IF NOT EXISTS enum_type1 as VARCHAR(255),CREATE DOMAIN IF NOT EXISTS enum_type2 as VARCHAR(255);DB_CLOSE_ON_EXIT=FALSE
但它给出了以下错误:
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "CREATE DOMAIN IF NOT EXISTS enum_type1 AS VARCHAR(255),[*]CREATE DOMAIN IF NOT EXISTS enum_type2 AS VARCHAR(255)"; SQL statement:
那么我们如何在休眠扫描实体之前创建多个枚举/域呢? 任何帮助将不胜感激,谢谢。
【问题讨论】:
-
@a_horse_with_no_name 如果我们使用 h2 DB。测试用例将花费更少的时间来执行,如果我错了,请纠正我。
标签: java spring-boot hibernate h2