gpt4 book ai didi

design-patterns - 更新多个实体的方法通常不是 DAO 的一部分吗?

转载 作者:行者123 更新时间:2023-12-04 07:14:24 24 4
gpt4 key购买 nike

我看过一百万个 DAO 示例,并且在大多数情况下,它们都为单个实体实现了基本的 CRUD 操作,可能还有一些返回列表的方法(例如 List getCustomers())。

但是,我从未见过有更新、删除或创建多个实体的方法的示例,例如:void update(List)。

更新多个实体的方法通常不是 DAO 的一部分,还是它们只是不常用于示例中?我有一个要求,我必须做一些批量插入,并且调用 myDAO.create() 一百次并不是非常有效。

我只是想确保在继续做看似显而易见的事情之前我没有遗漏任何东西。

最佳答案

我发现批量更新通常使用数据库供应商提供的工具来完成。

我同意,我见过的 DAO 通常没有重载 create/update/delete 的方法来获取 List,但没有理由不这样做。

让我失望的一个想法是,当我编写 DAO 时,它们并不拥有交易。他们永远无法知道自己是更大工作单元的一部分。这就是服务的作用。

我的建议是让 DAO 单独存在,让单独的服务层拥有批处理操作。服务拥有事务逻辑。它也是包含将大型更新“分块”成多个部分的逻辑的好地方。这使您可以检查批处理并使回滚日志的大小保持可管理。

关于design-patterns - 更新多个实体的方法通常不是 DAO 的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com