休眠-如何定义独立于数据库系统的默认布尔值?

时间:2020-05-16 07:20:33

标签: oracle postgresql hibernate jpa

我想基于JPA定义生成数据库模式,以便它可以在Oracle和PostgreSQL中正常工作。这两个DBMS中的布尔数据类型不同。各个Hibernate的方言正确地将java.lang.Boolean映射到Oracle中的NUMERIC(1,0)和PostgreSQL中的BOOLEAN。但是,@ ColumnDefault对于这两者都会保持不变,这会导致问题-“ false”不适用于Oracle或“ 0”不适用于PostgreSQL。有没有办法在一般情况下设置它,使其适用于任何DBMS?有没有像覆盖方言一样的技巧?我想在数据库杠杆上定义它,所以@PreUpdate或@PrePersist不是一个选择。

@Basic
@Column(name = "active", nullable = false)
@ColumnDefault("0")
private Boolean active = false;

0 个答案:

没有答案