对于多线程解决方案,我试图在标识字段或getter方法上映射一个planningId。
在我们的模型中,某些计划实体具有其他计划实体或问题事实的集合。
公共类用户{
@PlanningId
private String username;
...
}
公共类CloudComputer {
@PlanningId
private Long id;
//Considering all conditions, possible user changes all over time
//It works well in single thrad, but it does not work in multithread.
private List<User> subtitueUsers = new ArrayList<>();
...
}
在rebase方法中, 我比较了CloudComputer类。
ColludComputer的内存地址因线程而异。
但是subtitueUsers在此解决方案和目标解决方案之间具有相同的内存地址。
有时,subtituteusers包含在此解决方案和目标解决方案之间具有相同内存地址的用户类。
有什么方法可以深克隆包括subtituteUsers的云计算机? 还是有其他方法可以绕开这个问题?
答案 0 :(得分:1)
要进行深度克隆,请在@DeepPlanningClone
成员(字段或getter)上使用subtitueUsers
。
或者,也可以在@DeepPlanningClone
类上使用User
。是的,这实际上更好。
(不需要两者都做。)