【问题标题】:how to design query layer in CQRS如何在 CQRS 中设计查询层
【发布时间】:2014-02-12 09:27:30
【问题描述】:

我想做 CQRS。我应该在哪里查询?目前我能想到两个选择:

1) 每个查询都应该是一个只包含一个字符串的独立类?并且应该将此类对象传递给简单/愚蠢的存储库

在这种方法中,我们可能有数千个小型查询/类。我们也遇到了复杂查询的问题(例如,在 oracle 中,我们不能有空的 where in (...) 部分),所以没有好地方可以检查该部分是否为空,并且只需返回空集合而不接触数据库

在处理不同的数据库时使用不同的查询也有点困难

2) 在存储库对象中为每个查询创建 1 个方法

还是 CQRS 吗?我们不会失去轻松选择和传递查询的能力吗?还是真的不需要?

【问题讨论】:

    标签: java design-patterns domain-driven-design cqrs


    【解决方案1】:

    我认为您可能在这里混淆了概念。 CQRS only states 查询和命令有单独的模型,非常广泛。

    例如,一种可能的实现是拥有两个独立的通用存储库,一个用于查询,另一个用于命令。查询存储库实现可能使用数据库,而命令存储库实现可能使用不同的数据库。或者不。

    将查询类传递给您的存储库与让您的存储库实现许多不同的方法只是组织(查询)存储库的问题,而不是命令查询隔离问题。

    【讨论】:

    • 虽然问题被标记为 ddd,但似乎主要关注的是“查询”的内部。您能否在回答中详细说明一下?您提到这“只是组织问题”,我相信这就是最初提出的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多