DTO を対応する Hibernate エンティティにマップしようとしています。Hibernate セッションからエンティティをロードし、すぐにマッピングを実行します。
これは私が得る例外です:
javassist.NotFoundException: my.pkg.MyEntity$$EnhancerByCGLIB$$a7950497
at javassist.ClassPool.get(ClassPool.java:436)
at ma.glasnost.orika.impl.generator.JavassistCompilerStrategy.assureTypeIsAccessible(JavassistCompilerStrategy.java:181)
at ma.glasnost.orika.impl.generator.MapperGenerator.build(MapperGenerator.java:56)
at ma.glasnost.orika.impl.DefaultMapperFactory.buildMapper(DefaultMapperFactory.java:1057)
at ma.glasnost.orika.impl.DefaultMapperFactory.lookupMapper(DefaultMapperFactory.java:599)
at ma.glasnost.orika.impl.DefaultMapperFactory.lookupMapper(DefaultMapperFactory.java:566)
at ma.glasnost.orika.impl.MapperFacadeImpl.resolveMapper(MapperFacadeImpl.java:516)
at ma.glasnost.orika.impl.MapperFacadeImpl.resolveMappingStrategy(MapperFacadeImpl.java:199)
at ma.glasnost.orika.impl.MapperFacadeImpl.map(MapperFacadeImpl.java:337)
at ma.glasnost.orika.impl.MapperFacadeImpl.map(MapperFacadeImpl.java:357)
at ma.glasnost.orika.impl.ConfigurableMapper.map(ConfigurableMapper.java:148)
これは私のファクトリ ビルダーで構成された HibernateUnenhanceStrategy を使用したものです。これが私の Mapper の外観です。
public class MyMapper extends ConfigurableMapper
{
@Override
protected void configureFactoryBuilder(DefaultMapperFactory.Builder factoryBuilder)
{
factoryBuilder.compilerStrategy(new JavassistCompilerStrategy());
factoryBuilder.unenhanceStrategy(new HibernateUnenhanceStrategy());
}
@Override
protected void configure(MapperFactory factory)
{
factory.classMap(MyEntity.class, MyDTO.class);
}
}
現在の私の回避策は、セッションからの読み込みと Orika でのマッピングの間で、エンティティ自体の拡張を解除することですが、これについてはあまり明示したくありません。どうすればこれを機能させることができますか?