设计模式 :如何从网关内编辑多个实体


Design patterns : How edit multiple entities from within a gateway

我们现在处于一个项目的情况,我们需要一次操作多个用户实体。通过示例,我们将一次禁用 50 个用户。通常我们在网关中执行此操作

网关

  • 网关使用查询一次查询数据

  • 循环遍历多个用户
    • 加载实体
    • 操作数据
    • 驗證
    • 保存()

但这不是最佳实践解决方案。

第一个选项否决了验证数据的可能性。第二个是性能不佳,因为我们需要为所有用户迭代实体

你有什么建议?我们想要一个快速的解决方案,但也需要一个节省的解决方案

希望有人知道正确的解决方案。谢谢!

当我们使用

您需要一个对象实现映射器(ORM),该映射器具有一次加载与循环匹配的多个用户的功能,从而减少负载。

最后的保存操作类似。所有更改的实体应与工作单元一起存储。

查看您正在使用的ORM的产品文档或联系其供应商,以了解它提供了哪些功能来支持您的开发。

我会建议第一个选项。在单个查询中一次更新所有内容。但是您没有说明要执行哪种数据验证。也许您可以在提交之前启动数据库事务并发出第二个查询以验证"用户禁用查询"的结果?