2

使用 JBoss Envers (4.2.0 FINAL) 注释但在尝试审计 @Enumerated 属性时失败

@Entity
@Audited
public class TestEntity extends AbstractEntity {
    @Column(name="status")
    @Enumerated(EnumType.STRING)
    private StatusEnum status;

    public enum StatusEnum {
        ACTIVE, INACTIVE, DELETED
    }
}

并且在 entityManager 中设置“hibernate.hbm2ddl.auto”为“update”时应用程序启动异常如下所示:

引起:java.lang.ClassCastException: org.hibernate.mapping.SimpleValue$ParameterTypeImpl 不能在 org.hibernate.envers.configuration.metadata.BasicMetadataGenerator.addBasic(BasicMetadataGenerator.java:70) 在 org 中转换为 java.lang.String .hibernate.envers.configuration.metadata.AuditMetadataGenerator.addValueInFirstPass(AuditMetadataGenerator.java:176) 在 org.hibernate.envers.configuration.metadata.AuditMetadataGenerator.addValue(AuditMetadataGenerator.java:242) 在 org.hibernate.envers.configuration.metadata .AuditMetadataGenerator.addProperties(AuditMetadataGenerator.java:258) 在 org.hibernate.envers.configuration.metadata.AuditMetadataGenerator.generateFirstPass(AuditMetadataGenerator.java:494)

...

4

1 回答 1

3

检查你的 pom 文件,确保 hibernate-entitymanager、hibernate-core 和 hibernate-envers 在同一个版本上。这是一个兼容性问题。

于 2013-07-10T09:09:04.300 回答