Mat*_*teo 13 hibernate hibernate-envers
我们正在使用Hibernate Envers并出现以下情况:
一个类BusinessObjectType和Identity一个引用的类BusinessObjectType:
@Entity
@Table( name = "ID_IDENTITY" )
@Audited
public class Identity {
@ManyToOne
@JoinColumn( name = "BO_TYPE_ID" )
@IndexColumn( name = "INDEX_BO_BO_TYPE" )
private BusinessObjectType businessObjectType;
[…]
}
Run Code Online (Sandbox Code Playgroud)
然后我们查询所有版本的Identity:
AuditQuery auditQuery = auditReader.createQuery().forRevisionsOfEntity(
Identity.class,
false,
true );
auditQuery.add( AuditEntity.id().eq( dbid ) );
@SuppressWarnings( "unchecked" )
List< Object[]> history = (List< Object[]>) auditQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)
如果存储的身份没有BusinessObjectType(即,businessObjectType是和否),一切都像魅力一样.
如果身份有一个businessObjectType != null我们得到"Javassist Enhancement failed"异常:
Javassist Enhancement failed: ch.ethz.id.wai.baseclasses.BusinessObjectType
Run Code Online (Sandbox Code Playgroud)
这个错误似乎与Envers试图实例化一个BusinessObjectType有关但我真的没看到问题是什么(如果我们不使用AuditQuery,Hibernate对这两个对象都没有问题).
异常的原因是
java.lang.InstantiationException: ch.ethz.id.wai.baseclasses.BusinessObjectType_$$_javassist_49
Run Code Online (Sandbox Code Playgroud)
没有堆栈跟踪.
任何关于问题可能是什么的暗示?
Man*_*ngh 20
这发生在以下类JavassistLazyInitializer内部 基于Javassist的惰性初始化代理.
如果没有查看完整的来源,很难发表评论,但您可以尝试以下选项.
hibernate.bytecode.use_reflection_optimizer属性设置为false,则关闭反射优化 如果这有帮助,请告诉我们
| 归档时间: |
|
| 查看次数: |
14593 次 |
| 最近记录: |