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;
[…]
}
次に、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();
BusinessObjectType
保存されたIDに(つまり、 nullであった)がない場合、businessObjectType
すべてが魅力のように機能します。
IDbusinessObjectType != null
に「JavassistEnhancementfailed」の例外がある場合:
Javassist Enhancement failed: ch.ethz.id.wai.baseclasses.BusinessObjectType
このエラーは、EnversがBusinessObjectTypeをインスタンス化しようとしていることに関連しているようですが、問題が何であるかはわかりません(AuditQueryを使用しない場合、Hibernateは両方のオブジェクトに問題はありません)。
例外の原因は
java.lang.InstantiationException: ch.ethz.id.wai.baseclasses.BusinessObjectType_$$_javassist_49
スタックトレースなし。
問題が何であるかについてのヒントはありますか?