问题标签 [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 投票
1 回答
291 浏览

validation - Grails - 域对象无法正确验证

我正在尝试使用 jQuery Datepicker 设置一个人的出生日期。但是,我得到的只是Property dateOfBirth must be a valid Date.

所以,最初,我的控制器看起来像这样:

我发现,使用 jQuery 我应该使用一个SimpleDateFormat对象来生成一个合适的Date对象。尽管如此,即使我直接分配一个新Date对象dateOfBirth并随后验证personInstance域对象 - 就像在下面的代码段中一样 - 我仍然会收到Property dateOfBirth must be a valid Date错误消息。

感谢您的任何帮助 :)

0 投票
1 回答
335 浏览

java - 从 DAO 组装域对象的逻辑应该放在哪里?

我已经阅读了这里的几乎所有问题以及 www 中的许多相关论点,但我仍然不能很好地理解这一点,并且可能我错过了对其他人来说显而易见的东西,因为我认为这是一个很常见的情况...

请原谅我糟糕的英语和混淆的术语,但我对 DAO vs Repository 的差异/优势/警告并不感兴趣,我认为这不会改变问题的“核心”,但也许我错了.

显然,这个例子太简单了,每个解决方案都很容易矫枉过正,但把它看作是一个更大系统的“案例”。

假设您必须构建一个应用程序来向销售人员推荐要致电的人。

每个潜在客户都有一些“文本”数据(即姓名、性别、出生日期、地址、电话号码、电子邮件……)、一张照片以及他/她与其他人和供应商互动的一些历史记录。

文本数据位于 Mysql 表(人)上,照片位于文件系统中的某个位置,并且有人已经发布了服务,该服务返回一个潜在有兴趣联系的人的列表,给定推销员和作为买家的每个潜在客户的分数。

我最终可能会得到以下结果:

  1. 具有姓名、电话号码、地址、电子邮件和照片的域对象人员。所有属性的设置器和获取器以及方法 getScore()。

  2. 两个 DAO,一个用于 mysql 表,一个用于文件系统。

  3. 一项服务,用于获取给定推销员(应用程序的用户,不在本示例的范围内)的潜在客户列表。

我不清楚的是:

  1. Domain Object中的getScore()方法可以直接调用服务层的服务吗?如果不是,为什么?

  2. 对于来自不同 DAO 的数据,我是否需要单独的 DTO?

  3. 如果是这样,我需要某种管理器或“超级”DAO,它拥有有关如何组装这两条信息的逻辑(即从 mysql DAO 获取 URI,检索文件,加载图片)?这应该驻留在数据层还是服务层?(在我看来应该留在数据层,只要它处理的是数据存储)。

  4. 管理器或“超级 DAO”的输出应该是另一个 DTO 还是可以直接是域对象?

  5. 如果是 DTO,我是否需要一个服务来调用管理器/超级 DAO 并建立域对象(在这种情况下,我假设该服务会将分数“添加”到域对象中)。

我知道,这是一个清晰的问题,但我无法弄清楚如何设计解决方案。

0 投票
1 回答
103 浏览

java - 组合2个不同列表对象的列表,将对象的内容放入第三个对象列表中,Java中前2个的字段

这是会员:

这是资格:

这是我想放入前两个对象的第三个对象。

0 投票
0 回答
143 浏览

grails - Grails 域对象 (GORM) 继承

我有 4 个 Grails 域类(Domain1、Domain2、Domain3、Domain4)。这些域对象映射到具有完全相同的列集的遗留表。更准确地说,所有这些表都有 personFirstName、personLastName 和 personPhoneNumber 列。

这 4 个域类之间唯一不同的是它们引用的表名。

而不是在四个不同的地方复制/粘贴同一段代码并只修改它:

我想知道是否有一种方法可以在一个名为MyAbstractDomainClass的抽象类中完成这一切,并让我的 Domain1、Domain2... 像这样扩展它:

如何实现每个域类的静态映射以具有不同的表名?

我正在使用 Grails 2.4.2

0 投票
4 回答
129 浏览

java - 为什么我们需要这种特殊类型的构造函数?

这里为什么我们需要通过获取它的getter方法来设置构造函数中的值。这背后有什么特殊目的吗?

0 投票
1 回答
600 浏览

validation - Grails 验证不起作用

我正在尝试对域类对象进行一些验证,但是当我调用“验证”方法时出现了一个奇怪的异常。我有一个输入一些数据的表格: html表单 这是我的表格的代码:

这是我的控制器的代码。接收 POST 的方法是“创建”。

这是我的域类的样子:

使用调试我可以看到来自 POST 的数据已绑定到 userCommand 对象: 在此处输入图像描述

但是,我收到这样的错误消息: 在此处输入图像描述

这是控制台输出:

当代码调用“userCommand.validate()”时会引发异常。我不明白我在这里做错了什么。提前致谢!

0 投票
1 回答
277 浏览

grails - 在 Grails 中创建多个域对象

我想在控制器内创建大约 30 个域对象。这是我为第一个对象编写的方法,它工作正常(可以在 index.gsp 上查看输出)。现在,如果我必须为我需要的 30 个对象做同样的事情,我应该有 30 个不同的名称还是有更简单的方法?

我知道我可以在 BootStrap.groovy 中创建对象,但这不起作用(检查Grails 错误:表或​​视图不存在) 直到我发现那里的错误,我想在控制器中创建对象。

0 投票
3 回答
1050 浏览

php - 在以下项目中实现 SOLID 域对象模型

我有以下示例,其中我倾向于使用几个类来创建一个简单的 Web 应用程序。

文件层次结构看起来像这样。

index.php刚才调用的又bootstrap.php包含如下内容:

您可能会说,我的问题是这一行:

我不想使用它,而是尝试“域对象模型”方法。

现在,假设我将添加另一个名为 domain 的文件夹,其中blog.php

并填充blog.php属性映射表行,以及 getter 和 setter ..

我的问题是:假设我对 DOM 的理解到目前为止是正确的,并且我有一个 CRUD/ORM 类或一个 PDO 包装器来查询数据库;

“我怎样才能将博客模型与 PDO 包装器结合起来以在我的引导文件中获取博客?” ..

0 投票
1 回答
16 浏览

oop - 将关系表转换为域对象、静态或实例方法?

假设我们有 2 个表“部门”和“用户”。对于用户<->部门关系,还有另一个名为“UserDeps”的表。对于前 2 个表,我们有 2 个域对象类。应用程序中有一个图层。用于将表格转换为对象,反之亦然。

现在的问题:我有一个这样的方法: List GetDepartmentUsers(long depid);

我的问题是:你把这个方法放在哪里?

  1. 作为“部门”类中的静态方法?(显然语法是这样的:

List<Users> GetDepartmentUsers(long depid, DataHelper dh);

  1. 作为每个“部门”对象的实例方法?

Department dep = new Department(depid);

DataHelper dh = new DataHelper();

dep.GetDepartmentUsers(dh);

注意:“DataHelper”是一个处理 DB/SQL 操作的类。

0 投票
1 回答
1220 浏览

grails - 如何使用变量和域对象的映射在 grails 中响应而不用双重包装域对象

在 grails 中,我试图将参数返回给 ui。在我的控制器中,我用地图响应。我遇到的问题是域对象,例如父级和子级最终被双重包装。

所以我的回答是这样的

"child":{"child":{all properties here}}, "parent":{"parent":{all properties here}}

这意味着在用户界面中我必须做一些类似 response.get('parent').get('parent')

我已经尝试了很多不同的方法来让它按照我想要的方式工作,但似乎没有任何效果。