【发布时间】:2015-07-23 12:47:34
【问题描述】:
我的数据库中有整数列作为“状态”。
我的枚举类:
public enum MemberStatus {
PASSIVE(0),ACTIVE(1);
private int value;
private MemberStatus(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
我的实体字段:
@Column(name = "status", nullable = false)
@Enumerated(EnumType.ORDINAL)
private MemberStatus status;
休眠日志:
org.postgresql.util.PSQLException:错误:列“状态”是 integer 类型,但表达式是 bytea 类型。 提示:您需要重写或转换 expression.bytea
我使用 PostgreSQL。如何解决这个问题呢?有什么想法吗?
【问题讨论】:
-
你在使用 org.hibernate.dialect.PostgreSQLDialect 吗?
-
我用它:hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
-
如果您可以控制数据库(客户端不需要部署在 MySQL 上),那么您可以对枚举使用字符串表示,并为列使用 Postgres 枚举类型,一切都会Just Work,具有数据库原生枚举的优势。
-
@Gyhot 你试过了吗?
标签: java hibernate postgresql enums