问题标签 [domain-object]

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 投票
2 回答
798 浏览

grails - 用于列表的 Grails 域命名查询

我有一个简单的 Grails 应用程序。我有几个域,例如以下。场景是 Person 有很多 Telephone(但 person 类没有电话列表作为变量:Lazy Single-Ended Associations)。

现在我有一个要求,我必须通过电话号码搜索此人。我有一个字符串电话号码列表。我需要找到至少拥有该电话号码之一的所有人。我需要写 namedQueries,但我对这个领域很陌生。是否可以为此编写命名查询?或者我需要在 Person 类中定义的映射为

以及如何定义 namedQueries 以满足我的要求

提前致谢

0 投票
2 回答
472 浏览

grails - Grails domain Named 查询字符串列表

我有一个简单的 Grails 应用程序。我的域名如下

现在我有一个要求,我有一个流派标题列表,我需要检索所有在其中一个流派中至少有一本书的作者。我需要在 Author 类中编写一个命名查询。我尝试了以下查询

我传递了一个字符串列表,如下所示

但这似乎不起作用。我还有其他一些简单的命名查询,它们可以正常工作。因此,当我检索包括“hasGenere”时,这似乎不会影响检索。我究竟做错了什么?我对这个领域很陌生

提前致谢

0 投票
2 回答
1352 浏览

grails - Grails 命名查询不适用于“in”语句

我有一个 Grails 应用程序 (2.2.4)。我在域类中的位置看起来像这样

如果我按如下方式运行查询,则会检索所有值,而不仅仅是在genereNameList 中至少有一本书的作者

但是如果我像下面这样更改 namedQuery,

如果我传递如下字符串

这按预期工作。有什么我想念的吗?

提前致谢

0 投票
1 回答
55 浏览

php - 我是否正确使用域对象?

根据这篇文章here

您可以将它们 [Services] 视为“更高级别的域对象”,但服务不是业务逻辑,而是负责域对象和映射器之间的交互。这些结构最终创建了一个用于与域业务逻辑交互的“公共”接口。您可以避免它们,但代价是会将一些域逻辑泄漏到控制器中。

我一直在阅读 MVC,并将 M 部分拆分为服务、域对象和数据映射器。服务和数据映射器很容易弄清楚,但我不明白域对象的原因,你能给我一些例子吗?这是我的代码:

会员服务

成员域对象

更新:

这个问题是关于方法 checkPassword 以及为什么有必要创建一个单独的对象只是为了使用可以在服务内部使用的 IF 语句,从而节省 RAM 使用额外资源来创建新对象。

0 投票
1 回答
783 浏览

grails - 扩展 grails 域对象是个好主意吗?

我需要与不需要持久化的 grails 域对象类似的对象。为了我不必为任何字段更改在 2 个地方进行更改,扩展域类是否是一个好主意,以便我可以获得单组字段的好处。尽管所有相关的对象和集合都需要重做。

0 投票
1 回答
166 浏览

grails - Grails Domains - 多个多对多关系

我正在使用 grails 3.1.4 运行,并且无法创建允许我将多个域对象绑定到其他几个域对象的模式。作为我正在尝试做的一个例子:

我有三个班。书籍、作者和阅读清单。

作者本可以写很多书。书籍可以由多个作者撰写。此外,阅读列表由几本书组成,书籍可以是多个阅读列表的一部分。我应该如何为此创建域?

我尝试将它们设置如下:

编译时,我收到此错误:

我尝试将我的 belongsTo 值更改为与 hasMany 完全相同,映射键是复数动词,但这似乎也不起作用。关于我如何做到这一点的任何想法?

谢谢

0 投票
2 回答
2051 浏览

java - 域对象到持久实体的转换

我需要将域对象(DO)存储到数据库中。

最简单的方法是在 DO 定义中添加一些 JPA 注释,如@Entity,等@SequenceGenerator@Table但我不想将 DO 与其他概念(如持久化)混为一谈。所以我使用单独的 DTO 对象并将注释放在这里。

由于我是一名出色的领域驱动设计追随者,因此我不直接与 DB 互连并使用Repository模式。如果将来我从 RDBMS 迁移到例如 NoSQL,所有更改都将仅在 Repository 中完成,我的 DO 将保持不变。

因此流序列为

DO -> 存储库 - 转换 -> DTO -> DB

由于我的 DO 有很多字段,因此转换步骤非常繁琐,同时也非常简单:从 DO 中获取 fieldA 并将其放入 DTO 中的 fieldA' 中(在某些情况下进行简单的转换)。目前我在单独的Transformer.

执行此转换步骤的其他(更好?)方法是什么?

更新

bean映射框架Dozer vs Orika vs手动字段映射方法的良好比较

0 投票
2 回答
73 浏览

java - 无法弄清楚我的域对象设计有什么问题

我有这两个课,有人告诉我我做错了。

这是针对与 Seat 类有关系的员工类

我还向我的座位添加了一个员工属性,因为当我检索座位时,我想确定谁是座位的当前占用者。我的员工也是如此,当我检索它时,我想确定员工的当前座位。现在,他们说因为员工有座位属性,而座位有员工属性,这是一个糟糕的设计。

0 投票
0 回答
126 浏览

php - 如何处理“内部”集合中的域对象创建

我是 MVCish 结构的新手,所以请放轻松。为了理解目的,我正在编写自己的小型 MVCish“框架”。一点一点地,我打算了解如何以正确的方式组合在一起。

严重依赖MVC 中的模型应该如何构建?通过 tereško 和事实Domain Object != Domain Object Collection,我试图找出一种方法来处理批量创建域对象以及它们各自在集合中的插入。

哦,他的例子,他将一个 ServiceFactory 实例同时传递给控制器​​和视图。该实例在其构造函数中注入了 MapperFactory 和 DomainObjectFactory。没有收集工厂。

ServiceFactory.php 类似于

例如,假设我有一个名为的域对象Contract,我希望我的视图将它们全部显示在一个列表中。它可能应该告诉“模型”类似的东西$ContractService->fetchAll(),它将实例化一个集合并告诉映射器用所有合同填充它。正确的?

考虑到集合应该包含域对象和一个方法,比如$ContractMapper->fetchAll($collection)应该创建一堆它们,如何处理它们的创建!?

  • 我也应该有一个专门的收集工厂吗?
  • 我应该使用集合对象内的方法创建单个域对象吗?
  • 我应该使用集合映射器中的方法创建单个域对象吗?
  • 如果是这样,我应该将域对象工厂注入其中之一吗?(这可能需要一个 ServiceFactory 并注入更多的 Factory 依赖项,这很糟糕,对吧?)

我相信这可以通过糟糕的编码方式轻松实现,但我正在努力寻找最优雅和最干净的解决方案。

0 投票
3 回答
1423 浏览

php - DDD,PHP。领域对象和业务逻辑

最近一直忙于理解 ddd 和 Model 层的概念。阅读大量文章、示例、Q 和 A,花了很多时间在上面。我仍然不确定我是否掌握了一些正确的原则。

其中之一是对以下问题的回答:Domain Objects 中应该存在多少业务逻辑?一些消息来源说域对象应该与整个业务逻辑相关联,另一方面,我遇到了一些文章,我认为它应该尽可能小,并且只代表它的值。这让我真的很困惑。

在我的理解中,域对象是类,代表域中的实体。

因此,例如,使用 Invoice 实体。每张发票都由其项目组成。要计算发票价值,我们必须将所有项目的价值相加(这是一个非常简单的例子,在现实世界中会有加税、计算支付价值等情况)

据我了解,方法 isPaid() 是在正确的位置。它指的是它自己的数据。但我不确定 getInvoiceValue()。我们在这里对其他域对象进行操作。

也许我们应该只使用域对象来表示数据,但使用一些装饰器来执行更高级的任务?

提前致谢。