如何使用CRUDRepository保存列表但在最后提交

时间:2019-08-12 21:16:37

标签: java spring-boot spring-mvc

我有一个需要保存项目列表的项目,但是我想做的是,如果所有项目都成功,我希望将所有项目保存在列表中,但是如果其中任何一个在保存操作期间失败,我希望未使用CRUDRespository提交的列表中项目的所有更改。

控制器:

@PostMapping
ResponseEntity<List<ItemResource>> save(@RequestBody final List<ItemResource> itemResourceList){
    List<Item> itemList = new ArrayList<Item>();

    for (final ItemResource itemResource : ItemResourceList)
        {
         final Item savedItem = itemService.save(resourceToEntity(itemResource));
         itemList.add(savedItem);
        }

}

仅服务repository.save(item);

和存储库,只是存储库扩展了CrudRepository。

我希望它遍历列表,尝试保存所有项目,但是在列表末尾提交,如果在列表中保存项目期间发生任何事情,那么不要提交任何更改。

如果可能的话。

谢谢

1 个答案:

答案 0 :(得分:0)

itemService类应使用@Repository注释,并应扩展 CrudRepository

然后尝试创建itemService itemService =上下文的bean   .getBean(itemService.class);

然后使用itemService.save(resourceToEntity(itemResource))