我正在尝试在我的项目中使用 JBoss envers (4.2.0.FINAL) 注释,但由于枚举审计问题而失败,
我的实体代码是
@Entity
@Audited
@DiscriminatorValue("CREDIT")
@EqualsAndHashCode(callSuper = true)
@Data
public class CreditTransactionEntity extends TransactionEntity {
@Column(name = "consumed")
protected int consumed;
@Column(name = "approval_status", columnDefinition = "ENUM('APPROVED', 'DISAPPROVED', 'PENDING') DEFAULT 'PENDING'")
@Enumerated(EnumType.STRING)
private ApprovalStatus status;
public enum ApprovalStatus {
APPROVED, DISAPPROVED, PENDING
}
}
但是,当我更新/插入记录时,会出现以下异常
Hibernate 数据访问的 JDBC 异常:SQL 的 SQLException [n/a];SQL状态[S1000];错误代码[0];由于 java.lang.NumberFormatException,无法将类 java.lang.String 转换为请求的 SQL 类型 - 对于输入字符串:“APPROVED”;嵌套异常是 org.hibernate.exception.GenericJDBCException:由于 java.lang.NumberFormatException,无法将类 java.lang.String 转换为请求的 SQL 类型 - 对于输入字符串:“已批准”
为什么它将枚举转换为整数?!
注意:我使用的是休眠 4.1.8.Final