Oracle 中的 JPA 和 Flyway 布尔类型
Posted
技术标签:
【中文标题】Oracle 中的 JPA 和 Flyway 布尔类型【英文标题】:JPA & Flyway boolean type in Oracle 【发布时间】:2018-07-17 17:03:33 【问题描述】:我使用 Flyway 和 Spring JPA 来创建表和持久性。以下方法适用于 H2 嵌入式数据库(设置为 oracle 兼容模式)。但我注意到它在数据库中创建的布尔字段仍然是“布尔值”,这在 Oracle 中不受支持。
所以我的问题是,当我开始使用真正的 Oracle 数据库时,这仍然有效吗?该 flyway 将检测数据库类型并在创建之前将布尔值映射到 Number(1) 左右?
在flyway脚本中:
Create table Account
...
USER_EXISTS BOOLEAN not null,
....
在Account Entity类中:
private Boolean usertExists = true;
【问题讨论】:
是什么阻止您尝试 Oracle 数据库? XE 是免费的,它支持的功能足以成为开发和一些测试的有效数据库...... @Boris Pavlović 显然有一些原因,与这个问题无关。 【参考方案1】:对数据类型使用 Flyway 占位符,并将值设置为 H2 环境的 BOOLEAN
和 Oracle 环境的 Number(1)
。
Create table Account
...
USER_EXISTS $boolean_datatype not null,
....
【讨论】:
tnx,所以这意味着我的方法不能像现在在 Oracle 上那样工作?顺便说一句 $boolean_datatype 将在我的 spring-boot 配置中? 您需要在各种 Spring Boot 配置文件中为flyway.placeholders.boolean_datatype
设置不同的值。以上是关于Oracle 中的 JPA 和 Flyway 布尔类型的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot - Flyway - JPA 集成 - 创建名称为“flywayInitializer”的 bean 时出错 - information_schema 中的未知表“事件”