【发布时间】:2019-04-04 09:23:48
【问题描述】:
我正在尝试将枚举值持久化到数据库中,但触发了实例化异常,这是我的映射:
@Entity
public class Anomalie {
@Embedded
private AnomalieAck ack = AnomalieAck.NON_ACQUITTEE;
public Anomalie() {
}
/*getters and setters*/
}
//AnomalieAck.java
public enum AnomalieAck {
NON_ACQUITTEE(0),
ACQUITTEE_APP1 (1),
ACQUITTEE_APP2(2),
/** Aacquittee en erreur. */
ACQUITTEE_ERREUR(10),
@Column(name = "ANO_ACK")
private int ack = 0;
private AnomalieAck() {
}
private AnomalieAck(final int value) {
this.ack = value;
}
public int getValue() {
return this.ack;
}
public void setAck(int ack) {
this.ack = ack;
}
}
我没有使用@Enumerated(EnumType.STRING) 或@Enumerated(EnumType.ORDINAL) 的原因是在数据库中字段 ANO_ACK 被声明为数字,并且有很多其他资源使用它值作为数字。
我已经检查了一切:no-args 构造函数已经定义,setter 方法已经实现。
我该怎么做才能让 Hibernate 实例化这个类?
【问题讨论】:
标签: java hibernate enums hibernate-mapping instantiation