0
我试图使用JBoss envers(4.2.0.FINAL)标注在我的项目,但我失败了由于枚举审计问题,休眠envers例外
我实体的代码是
@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异常:SQLException for SQL [n/a]; SQL状态[S1000];错误代码[0];由于java.lang.NumberFormatException,无法将类java.lang.String转换为请求的SQL类型 - 对于输入字符串:“APPROVED”;嵌套的例外是org.hibernate.exception.GenericJDBCException:不能java.lang.String类转换成要求源于java.lang.NumberFormatException SQL类型 - 对于输入字符串:“认可”
为什么它转换的枚举整数 ?!
注:我用冬眠4.1.8.Final
你是否也没有@Audited这个异常? – adamw 2013-05-07 06:15:59
不,我不是每个人都工作正常,没有envers – 2013-05-07 09:24:03
我假设你的数据库和Hibernate之间有冲突。您正在使用哪种数据库模型/版本?你可以使用'EnumType.Oridnal'来代替。 – 2013-05-06 13:28:17