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

标签 java spring-boot spring-mvc

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

Controller :

@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 的存储库。

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

如果可能的话。

谢谢

最佳答案

itemService类应该用@Repository注释并且应该扩展 CrudRepository

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

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

关于java - 如何使用 CRUDRepository 保存列表但最后提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57468354/

相关文章:

java - 如何生成 6 个唯一的 java 数字

java - 如何创建 FindByIndexNameSessionRepository 的 bean

java - Spring Controller 中的圆形 View

java - 不理解 Java EE 中上下文的概念

部署 Tomcat 后 Java/Spring 应用卡住

java - 一个项目中的两个 Spring MVC/Maven 模块

Java/或 Android IP 隧道

java - 如何创建一个 ASM LdcInsnNode 将当前类静态添加到堆栈中?

java - 无法读取 cookie javascript

java - 使用 ldap 时出现 AcceptSecurityContext 错误