2013-05-06 166 views
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

+0

你是否也沒有@Audited這個異常? – adamw 2013-05-07 06:15:59

+0

不,我不是每個人都工作正常,沒有envers – 2013-05-07 09:24:03

+0

我假設你的數據庫和Hibernate之間有衝突。您正在使用哪種數據庫模型/版本?你可以使用'EnumType.Oridnal'來代替。 – 2013-05-06 13:28:17

回答

0

它看起來像一個版本兼容性錯誤,

我從4.1.8.Final升級我的Hibernate的EntityManager來4.2.0.Final和一切正常工作現在