因为hibernate JPA 用PersistentBag、PersistentSet等这样的包装集合,里面既有list类型的bag,又有快照snapshot(该快照深度克隆bag里的值),导致smooks 做分录转换的时候(如果源POJO是SET集合目标分录条数会是3倍,如果是List集合则记录数是2倍(,要看如何修改,是修改hibernate去掉快照还是修改smooks?
暂时有效的解决方法是硬编码处理
转换方式 考虑2点
1、 A JPA对象从A数据库中获取,通过转换引擎SMOOKS变成B对象,通过B事务管理插到B数据库中
2、 B 直接通过A事务管理JPA 用 sql从A数据库中获取,清除ID,通过B事务管理插入到B数据库中 (JPQL 是针对实体的查询,功能和SQL比起来还是有不小差距,混用MYbatis达到取数目地)