【发布时间】:2016-08-09 21:03:07
【问题描述】:
我在使用 enver 阅读器时出错,对 db 的审核工作正常,但是当我需要创建阅读器时出现错误。..
这是行:
reader.isEntityClassAudited(App_UserDto.class);
其中 App_UserD 有 @Audited 标记。
导致此错误:
java.lang.NoSuchMethodError: javassist.util.proxy.ProxyFactory.isProxyClass(Ljava/lang/Class;)Z
org.hibernate.envers.internal.tools.EntityTools.getTargetClassIfProxied(EntityTools.java:78)
org.hibernate.envers.internal.reader.AuditReaderImpl.isEntityClassAudited(AuditReaderImpl.java:298)
cl.sw.appCenter.sys.audit.AuditLectura.getUserAuditado(AuditLectura.java:31)
cl.sw.struts.sys.action.UsuariosAction.usuariosLista(UsuariosAction.java:80)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:870)
ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1293)
............
App_UserDto:
@Entity
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@NamedQueries({
@NamedQuery(name="user.getUserByUser",
query="FROM App_UserDto WHERE user = :user"),
})
@Table(name = "APP_USER")
public class App_UserDto implements DTO{
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gen_USERS")
@SequenceGenerator(name="gen_USERS", sequenceName = "SEQ_APP")
@Column(name="ID",nullable = false)
private int id;
@Column(name="NOMBRE")
private String nombre;
@Column(name="APELLIDO")
private String apellido;
@Column(name="USUARIO")
private String user;
@Column(name="CLAVE")
private String clave;
@Column(name="ACTIVO", insertable=false)
private String activo;
@Column(name="EMAIL")
private String email;
@Column(name="FONO")
private String fono;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="ID_PERFIL",nullable=true)
private App_PerfilDto perfil;
.....
pom.xml
...
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>5.0.10.Final</version>
</dependency>
...
有什么建议吗?
我的 DTO.. 在这里。
public interface DTO extends Serializable{
public String getRegistro();
public void cleanRegistro();
}
【问题讨论】:
-
您能否偶然用您的 DTO 界面更新您的问题?
-
嗨,谢谢你的提问....当然是的
-
您的类路径中的 javassist 版本是什么?看起来可能是不匹配,这就是您遇到此问题的原因。
-
嗨,我在 maven 库 3.1.8.1 和 3.1.1.0 上有两个 javassist 版本
标签: java hibernate maven hibernate-envers