问题标签 [repository-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
123 浏览

java - 在 Java 中使用存储库模式时,可以为 3 个不同的存储库使用单个管理器/控制器吗?

我有 3 个需要相互通信的存储库。我可以在单个管理器中处理所有 3 个存储库的逻辑,还是为每个存储库创建不同的管理器并让它们使用另一个管理器(将直接与 UI 通信)相互通信是更好的做法?

语境:

它基本上是一个用于管理餐厅订单的应用程序。

3个存储库是:

  • ProductRepository - 可用的产品
  • TableRepository - 餐厅里的所有桌子
  • OrderRepository - 一个订单包含一个元组 (product_id, table_id)

经理必须验证数据,创建 Product、Table 和 Order 对象并将它们保存到正确的 Repository。

0 投票
2 回答
159 浏览

java - 如何实现算法存储库?

我有一组用 Java 实现并打包为 jar 文件的算法。这些算法旨在供第 3 方访问它们。算法有几种变体。随着时间的推移,将添加新版本和新类型的算法。同时,我不会强迫所有第 3 方使用新算法。

我正在考虑为此实施一个简单的存储库系统。要求如下:

  1. 创建/删除存储库,以便每个存储库包含一组算法的变体。
  2. 一个存储库中的算法可以同时运行 serverl 版本。
  3. 可以将新算法添加到存储库中。

是否有一些开源项目符合我的要求?或者是否有一些设计模式可以解决这样的问题?

0 投票
1 回答
2244 浏览

php - Laravel 存储库模式最佳实践

我正在用 laravel 5.1 编写一个新项目,我想使用存储库模式,但我不知道最好的方法是什么。

我在想:

接着

这样我就可以使用模型作为DTO,它非常简单和舒适,但是我将依赖 Eloquent。

所以我正在考虑使用数组而不是模型,就像这样:

但是那样使用起来会不太舒服。

你能解释一下在 Laravel 中使用存储库的最佳方式是什么,以便我将来能够轻松更改数据源,但使用这种模式仍然很舒服?

0 投票
2 回答
1103 浏览

domain-driven-design - 滴滴涕。我应该修改存储库中的实体吗?

我有一个关于实现 DDD 和存储库模式的问题。我应该修改存储库中的实体吗?

假设我有一个订单并且想将该订单标记为已完成。当我看到这一点时,我有两个选择。

    1.

...在更新调用中将更改持久保存到数据库的位置。

2.

...在Finish调用中将更改保存到数据库中。

使用一种方法比另一种方法有优势吗?这样做的 DDD 方式是什么?

0 投票
1 回答
248 浏览

spring-data - 为什么 Querydsl 会寻找不正确的生成实体?

我遇到了一个问题,当我尝试运行 Junit 测试时会收到 ClassNotFoundException 错误。生成的查询类是 QSomeTableEntity_Q,但即使我的 Predicate 类导入 QSomeTableEntity_Q 类,它也会继续在 SomeTableRepository 中为实体寻找 QSomeTableEntity。

我在我的 maven pom < querydsl.suffix >_Q< /querydsl.suffix >

0 投票
2 回答
42 浏览

svn - How to prohibit modifications to all files in a revision control system

For an archive of test data I need a revision control system that allows only the addition of files. Modifications, renaming and any other changes are prohibited.

This will make it possible to test any code revision with the current test data and reproduce the same results as before.

We are currently using Subversion for source code. However, the test data will probably be several hundred files with about 200 GBytes of data. I doubt that Subversion can handle it. I don't want to put the test data into the same Subversion archive as the code, which only has several MBytes.

Also, Subversion doesn't seem to be the right tool for such a simple problem.

How do I create a directory in my subversion repository with an add-only rule?

I noticed, that after checkout the test data doubled in size, because there is a .svn-directory with copies of every file. Can I avoid this waste of hard disk space? Someone, who only wants to use the data but doesn't want to add anything wouldn't need it. He could just delete .svn but would still need a lot of disk space at checkout.

0 投票
1 回答
243 浏览

linux - GIT 权限:存储库中的存储库

我的文件夹结构如下:

假设我有两个用户,user1并且user2.

现在我需要:

  1. setuprepo1repo2作为两个独立GIT repositories的 .
  2. 设置user1为拥有repo1user2的权限repo2
  3. user1应该能够拉取file1内容fold1,但不能repo2
  4. user2应该能够repo2在它下面拉和文件,但不能repo1
  5. 在进行user2更改并提交后repo2,它应该反映repo1在服务器下

这种级别的权限是否可以使用GIT

0 投票
1 回答
4499 浏览

doctrine-orm - Symfony Doctrine 实体管理器和存储库

我了解好处或存储库模式,但我只是无法理解 Symfony3 Doctrine 中存在Doctrine\ORM\EntityManager\Doctrine\ORM\EntityRepository

  1. 两者有什么区别?
  2. 存储库是否应该注入控制器或实体管理器?

    编辑 正确的问题应该是:从控制器访问存储库的正确方法是什么?

    • 是否应该将存储库作为服务注入控制器?
    • 是否应该将存储库作为服务注入另一个服务?
  3. 实体管理器是否应该包含任何查询?
    编辑 正确的问题应该是:服务是否应该包含查询?@MateuszSip 已经解释过,可以通过注入实体管理器来完成

  4. 是否应该将自定义功能(例如getAvailableManagers)放入存储库或服务中?(manager存储库在哪里,确定有一些逻辑available manager

  5. 更通用的功能怎么样findAllManager,应该在存储库还是实体管理器中?

目前我正在使用 Symfony3。非常感谢

干杯,

编辑 与@MateuszSip 交谈(感谢伙伴),我决定用下面的例子让我的问题更清楚。请注意,下面的代码并不代表真正的问题

控制器

存储库

服务

0 投票
2 回答
285 浏览

android - Git:为这种存储库写入 .gitignore 文件的内容是什么?

如果 repo 是一个包含一组不同项目的文件夹,应该在 .gitignore 中放入什么?它们是 Android Studio 的、Maven 的并在许多操作系统上开发。

经过研究,我想把这些线,如果有错误或者你有更好的想法,请告诉我:

0 投票
3 回答
291 浏览

domain-driven-design - 是 GetById、GetByX CRUD 还是业务逻辑方法或两者兼而有之

我的同事告诉我——我们没有业务逻辑,我们只有像 GetById、GetBySearchTerm、GetByParentID 这样的 CRUD ......所以我开始怀疑这些词。

在阅读了 DDD 之后,这些方法是 CRUD,它们具有基于某些特定代码(通常是 SQL)获取数据(也存储、更新、删除......)的机制。

如果业务分析师对我说:“我们需要显示有关特定客户的数据”。在我看来,这是一个业务流程(GetById),GetById 应该放在应用程序的业务逻辑部分中,并与存储库联系以获取数据。具有 CRUD 方法的存储库负责根据某些标准持久化数据。

我知道这个问题可能会引发关于拥有原子方法(GetById、GetBySearchTerm、GetByParentiId ...)的存储库的争论,但我的问题很简单——这些方法是 CRUD 还是业务逻辑方法。