【问题标题】:JPA & Flyway boolean type in OracleOracle 中的 JPA 和 Flyway 布尔类型
【发布时间】: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ć 显然有一些原因,与这个问题无关。

标签: java hibernate jpa flyway


【解决方案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 设置不同的值。
猜你喜欢
  • 1970-01-01
  • 2014-03-02
  • 2010-09-13
  • 2018-06-07
  • 2011-04-13
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
  • 2012-08-16
相关资源
最近更新 更多