0

我正在尝试在我的项目中使用 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

4

1 回答 1

0

它看起来像一个版本控制兼容性错误,

我将我的休眠实体管理器从 4.1.8.Final 升级到 4.2.0.Final,现在一切正常

于 2013-05-07T09:25:51.687 回答