问题标签 [datamapper]

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 回答
2367 浏览

ruby-on-rails - ActiveRecord 模式与域对象或数据映射器模式有何不同?

我在看DataMapper,乍一看似乎使用 ActiveRecord ORM 模式。其他人说它使用 DataMapper 和/或域对象模式。

这些模式有什么区别?

0 投票
1 回答
2612 浏览

.net - 使用 iBATIS 映射到字典

给定一个简单的语句,例如:

是否可以获得键是列名的字典对象列表?IE。

我想概括查询的结果以处理任意数量的列/列名,而不映射到某个类的特定属性。

我意识到这里的示例会失败,因为结果集可能有重复(或空)的列名。我考虑过一个包含键值对索引列表的结果类。这里的关键是将列信息保留在某处。

0 投票
3 回答
2309 浏览

design-patterns - 从 ActiveRecord 重构为 DataMapper

您是否已从ActiveRecord重构为DataMapper模式?什么条件促使切换?我主要对基于 Web 的应用程序感兴趣,但想知道在任何环境中伴随这种移动的挑战。

0 投票
2 回答
4001 浏览

java - 为不同的列名重用 resultMap

有没有办法在单个查询中多次重用相同的 resultMap。

例如,假设我有一个“foo”resultMap:

有没有办法定义另一个将上述内容用于不同列的结果映射?就像是...

0 投票
3 回答
16372 浏览

datamapper - 数据映射器模式

到目前为止,我一直在我的所有 c# 数据库驱动应用程序中使用活动记录。但是现在我的应用程序需要将我的持久性代码从我的业务对象中分离出来。我已经阅读了很多关于 Martin Fowler 的数据映射模式的帖子,但我对这种模式的了解仍然非常有限。

让我们使用以下示例:

如果我有 2 个表 - Customer 和 CustomerParameters。CustomerParameters 表包含用于创建新客户的默认客户值。

然后我必须创建一个CustomersMapper 类来处理所有的Customer 持久性。然后,我的 Customer 和 CustomersList 类将与此映射器类协作以保存客户数据。

我有以下问题:

  1. 如何在不违反某些业务规则的情况下将原始数据传输到我的客户类和从我的客户类到映射器?DTO?

  2. 在我的 Mapper 类中使用 SaveAll 和 LoadAll 方法来更新和加载多个客户的数据是否可以接受?如果是这样,在 SaveAll 的情况下,映射器如何知道何时更新或插入数据?

  3. Customer 映射器类是否也负责从 CustomerParameters 表中检索默认值,还是创建一个 CustomerParameters 映射器会更好?

AO/R 映射器工具实际上并不在这里。我使用的数据库是事务性的,需要我编写自己的映射器模式。

任何想法和意见将不胜感激。

0 投票
1 回答
542 浏览

datamapper - 在 DataMapper 中使用的类模型

在实现 DataMapper 模式时,我在 DataMapper 包中实现的类模型应该更接近域模型还是数据模型?

0 投票
3 回答
2139 浏览

php - 如何扩展这个简单的 DataMapper?

有人可以从以下内容中得出一个具体的例子:

http://www.urdalen.com/blog/?p=210

..这表明如何处理one-to-manymany-to-many关系?

我前段时间给作者发了邮件,但没有收到回复。我喜欢他的想法,但不知道如何在简单的单表关系之外实现它。

注意:我不想使用成熟的 ORM。我喜欢手工编写 SQL。不过,我想改进我的应用程序代码的设计。现在,每个域对象都有自己的类,其中充满了封装在静态方法中的查询。它们只是根据查询返回标量、一维数组(记录)或二维数组(记录集)。

0 投票
1 回答
1248 浏览

javascript - CouchDB + Datamapper + View = 无 ID

我正在使用 couchdbx v. 0.8.1 和 datamapper 0.9.8。我写了一些简单的视图,从其他示例中复制了一些。如果我用浏览器查询视图,它们会返回 id。如果我在 ruby​​ 中使用 datamapper 查询它们,我不会得到任何 id。我已经用谷歌搜索了好几天,一直在 IRC 上查看沙发和 datamapper 谷歌组。我试过降级我的datamapper和couchdb。没有什么。还有其他人遇到这个问题吗?

0 投票
2 回答
792 浏览

php - 数据映射器模式和其他对象的自动更新

我正在使用数据映射器模式构建一个 PHP 应用程序,以将我的数据库与域对象分开。我有一个映射器类,它根据数据库中的数据返回站点对象,并接受现有的站点对象以保存回数据库。

我的问题是,在系统中,所有站点中的一个(也是唯一一个)必须标记为“主要”站点,这意味着如果我将一个设置为主要站点,我希望能够自动取消设置当前的初级。

所以,像:

会以某种方式在后台自动执行此操作:

问题是,自动更新现有主站点的逻辑应该去哪里?它必须在对象保存回数据库之后发生,而不是之前,以防数据库查询失败并且您没有站点作为主要站点。

干杯,杰克

0 投票
3 回答
1554 浏览

php - 数据映射器模式和重复对象

我在我正在开发的 PHP 应用程序中使用数据映射器模式并且有一个问题。目前,您请求一个具有特定 ID 的 Site 对象,映射器将查找该行,创建一个对象并返回它。但是,如果您对同一个站点再次执行此操作,您最终会得到两个具有相同数据的不同对象。例如。:

所以,我的问题是,我应该:

  1. 将实例化的 Site 对象存储在映射器中,这样我就可以在创建新对象之前检查它们是否已经存在(如果有多个相同类型的映射器可能会出现问题)
  2. 执行与 #1 相同的操作,但确保每个映射器只有一个实例
  3. 与 #1 一样,但使用静态属性,因此多个实例不是问题
  4. 不要担心,因为它 可能不是问题