当我第一次运行POST时(当id尚未保存在数据库中时),它返回“ConCurrentModifiationException:NULL”;
dto.getObservations().stream()
.map(productObservationsService::convertDTOToModel)
.forEach(model::addObservation);
这是我的实体:
@OneToMany(mappedBy = "relatedProduct", cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<ProductObservationModel> observations;
public void addObservation(ProductObservationModel observationModel) {
if (this.observations == null)
this.observations = new ArrayList<>();
observations.add(observationModel);
observationModel.setRelatedProduct(this);
}
有人知道这会是什么吗?
1条答案
按热度按时间von4xj4u1#
老实说,我不知道你说的“当我第一次发布帖子时(当ID还没有保存在数据库中时)”是什么意思。
您的问题是,您试图在迭代列表时写入列表,而该列表不是为此而设计的(观察)。
如果列表始终由您提供,则可以将
this.observations = new ArrayList<>()
更改为this.observations = new CopyOnWriteArrayList<>()
。您可以阅读有关列表如何在JavaDoc上工作的更多信息如果不是,则可以在迭代之前复制该列表,或将添加的ProductObservationModel保存在其他列表中,并在迭代后添加它们。