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 中的未知表“事件”

Spring Data JPA / Flyway 转义双引号

在 JPA 中使用 Flyway 创建的序列

创建 jpa 表后的 Flyway 迁移

为啥flyway迁移需要JPA依赖才能运行

Flyway 与 JPA + OSGi 的集成