Orika和Hibernate管理的集合

Orika和Hibernate管理的集合,hibernate,mapping,orika,Hibernate,Mapping,Orika,我目前正在使用Orika在Hibernate管理的域对象和模型(DTO)之间进行映射。之所以这样做,是因为我希望在从Model-->域开始时合并集合,以便在不进行任何更改的情况下,不会迭代实体的Hibernate版本号。我最初设置了一个由以下内容定义的映射器: A extends CustomMapper<List<Domain>, List<Model>> { ... } A扩展自定义映射程序{…} 这在实际不使用持久性层的单元测试中效果很好,但是当我使

我目前正在使用Orika在Hibernate管理的域对象和模型(DTO)之间进行映射。之所以这样做,是因为我希望在从Model-->域开始时合并集合,以便在不进行任何更改的情况下,不会迭代实体的Hibernate版本号。我最初设置了一个由以下内容定义的映射器:

A extends CustomMapper<List<Domain>, List<Model>> { ... }
A扩展自定义映射程序{…}
这在实际不使用持久性层的单元测试中效果很好,但是当我使用Hibernate进行集成测试时,根本不会调用它。事实上,我的对象中的集合从未在任何方向填充。挖掘发现这是由于Hibernate使用PersistentList(实现列表,但没有类型信息)造成的。所以现在我有两个映射器:

A extends CustomMapper<List<Domain>, List<Model>> { ... }
B extends CustomMapper<PersistentList, List<Model>> { ... }
A扩展自定义映射程序{…}
B扩展自定义映射程序{…}
如果我删除了一个,那么Orika的行为就像地图绘制者根本不存在一样。我认为这是因为当它分析我提供的所有类映射时,它没有找到任何与PersistentList匹配的内容,因此它没有被包括在内

如果我删除B,Orika将不会正确地将Hibernate返回的域对象映射到模型,因为它不会映射PersistentList

有没有办法让这个更干净?如何定义一个以不含糊的方式覆盖所有情况的映射