基本上,我有一个Notification
实体,代表用户在我的应用上的通知。
我期待一个用例可以标记为" read"一次发出许多通知。
我目前所做的是获取通知集合,循环通过它们以便为每个通知指定notificationRepository.save(notification)
。 (save
甚至add
如果我们严格遵循存储库模式本质来抽象数据库概念。)
在封面下,存储库实现绑定远程数据库。
问题是,对我的数据库服务器进行往返是非常昂贵的(因为远程) 实际上,如果用户希望标记10个通知,则会有10次往返......
有没有办法批量保存,同时保留DDD技术模式规则?
例如,我应该在我的存储库中定义addAll
(或saveAll
)方法吗?
答案 0 :(得分:3)
通常,如果您有ORM或某种更改跟踪器,则您的存储库中不需要save()
方法,因为在提交UnitOfWork时,将在应用程序级别刷新修改。
如果标记了10个通知,ORM可能会将其转换为10个更新语句,但这对我来说从来都不是问题。如果真的是一个问题,也许你可以优化它来进行批量更新。