java集合复制_java-将子集合复制到另一个对象

我在零件和参数之间有一对多的关系(一个“零件”有很多“参数”).

我正在尝试做这样的天真的事情:

Part sourcePart = em.find(Part.class, partIdSource);

Part destPart = em.find(Part.class, partIdDest);

Collection paramListSource = sourcePart.getParamList();

destPart.setParamList(paramListSource);

基本上,我想将所有参数从sourcePart复制到destPart.希望持久性提供程序将在Param表/实体中自动设置正确的外键.

上面的代码显然不起作用.

有没有简便的方法,还是必须创建一个新的集合,然后添加每个Param(创建新的Param,设置属性等)?

编辑

我尝试像在另一个线程中推荐的对象那样首先分离实体,但是却遇到异常(org.hibernate.PersistentObjectException:传递给持久化的分离实体:shared.entity.Param).

Part sourcePart = em.find(Part.class, partIdSource);

// force eager loading...

((List)sourcePart.getParamList()).get(0);

Part destPart = em.find(Part.class, partIdDest);

// detach entity

org.hibernate.Session session = ((org.hibernate.ejb.EntityManagerImpl) em.getDelegate()).getSession();

session.evict(sourcePart);

//causes exception "detached entity passed to persist"

destPart.setParamList(sourcePart.getParamList());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值