0

プロジェクトで JBoss envers (4.2.0.FINAL) アノテーションを使用しようとしていますが、Enum 監査の問題により失敗しました。

私のエンティティコードは

@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 [該当なし]; SQL 状態 [S1000]; エラーコード [0]; java.lang.NumberFormatException のため、クラス java.lang.String を要求された SQL タイプに変換できません - 入力文字列の場合: "APPROVED"; ネストされた例外は org.hibernate.exception.GenericJDBCException: クラス java.lang.String を、java.lang.NumberFormatException が原因で要求された SQL タイプに変換できません - 入力文字列の場合: "APPROVED"

なぜ列挙型を整数にキャストするのですか?!

注:休止状態の 4.1.8.Final を使用しています

4

1 に答える 1

0

バージョン管理の互換性バグのように見えますが、

hibernate-entitymanager を 4.1.8.Final から 4.2.0.Final にアップグレードすると、すべてが正常に機能するようになりました

于 2013-05-07T09:25:51.687 に答える