NHibernate 上值对象的单独表

2023-12-13

我是 DDD 和 NHibernate 的新手。

在我当前的项目中,我有一个实体 Person,它包含一个值对象,比如说 Address。今天,这很好。但也许有一天我会要求我的值对象(在本例中为地址)必须成为一个实体。

在尝试以 DDD 方式对此进行建模之前,采用更以数据为中心的方法,我有一个带有 Id 的表 Person,以及另一个表 Address,其 PK 实际上是 FK,它是一个人的 Id(即,一对一的关系)。

我一直在阅读,当我将值对象映射为组件时,它的值将被映射为实体表上的列(因此,我不会有一对一的关系)。

我的想法是,当需要时,我只需向我的地址表添加一个代理键,然后它就成为一个实体。

我应该如何使用 NHibernate 来设计它?我应该已经将我的地址对象设置为实体吗?

抱歉,我什至不知道我的问题是否清楚,我真的迷失了。


在我们正在构建的系统中,我们将值对象放在单独的表中。据我所知,NHibernate 要求id必须添加到对象中,但我们忽略这一点并将该对​​象视为系统中的值对象。您可能知道,值对象是您不需要跟踪的对象,因此我们只需忽略id在对象中。这使我们能够更自由地按照我们想要的方式对数据库进行建模,并按照我们想要的方式对领域模型进行建模。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NHibernate 上值对象的单独表 的相关文章

  • DDD:持久聚合

    让我们考虑一下典型的Order and 订单项目例子 假如说订单项目是的一部分Order聚合 只能通过订单添加 所以 要添加一个新的订单项目 to an Order 我们必须通过存储库加载整个聚合 将新项目添加到Order对象并再次保留整个
  • 非法尝试将集合与两个开放会话关联 流畅的 nhibernate

    我有这个异常 非法尝试将集合与两个打开的会话关联 每次我保存包含子集合的实体时都会引发该异常 我用谷歌搜索一下 我发现在调用保存时我打开了两个或多个会话 但我确定我只使用了一个会话 我哪里做错了 我该如何解决这个问题 注意 我使用的是 MV
  • 具有子集合成员条件的 NHibernate 查询仅返回部分子集合

    我与以下人员之间存在亲子关系Teacher and StudentReport Each StudentReport有一个时间戳字段记录老师完成报告的时间 我有一个查询 要查找截至某一分钟前已完成一份或多份报告的所有教师 public IL
  • NHibernate 具有多个数据库和事务

    我们在理解如何最好地使用 NHibernate 时遇到了一些问题 我们通常拥有相对大量 就表数量而言 的 SQL Server 数据库 而不是一个包含大量对象的数据库 我们正在研究处理多个会话工厂的各种选项 并且可能已经控制住了这一点 但是
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • NHibernate 获取 & 字符串 Id

    我在 NHibernate 上有一个分配了字符串 Id 的实体 并且在通过 Id 获取实体时遇到了一些问题 例子 假设有这样的数据库记录 Id Description AAA MyDescription 现在 如果我使用搜索 ID aaa
  • NHibernate:将 ICriteria 转换为 DetachedCriteria

    任何人都知道如何将 ICriteria 转换为 DetachedCriteria 我需要使用现有的 ICriteria 作为子查询的一部分 使用 Add Subqueries PropertyIn Name myDetachedCriter
  • AutoMapper 将 IdPost 映射到 Post

    我正在尝试根据规则将 DTO 上的 int IdPost 映射到 Blog 对象上的 Post 对象 我想实现这一点 BlogDTO IdPost gt Blog Post 帖子将由 NHibernate 加载 Session Load I
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • nHibernate 3 - Left Join re-Linq 解决方案

    我正在尝试使用 nHibernate 3 运行下面的 Linq 查询 var items from c in session Query
  • 如何使用 NHibernate 标准来做到这一点

    假设我有 2 张桌子 表1 a b 和表2 c a 我需要做这样的事情 但符合 NHibernate 标准 select a b select count from table2 t2 where t1 a t2 a x from tabl
  • nhibernate:读写字符串列表

    我知道我可以使用 nhibernate 读取写入字符串列表 如下所示 HasMany x gt x Attachments KeyColumn RowId Table PostTable Element PostKey 但这会创建一个额外的
  • 如何在 NHibernate 查询中仅选择几列?

    我有一个一类到一表的映射 不幸的是 这个表有 110 多个列 查询需要很长时间 尤其是大多数时候我只想查看 我的问题是查询是根据用户想要查看的内容动态生成的 我无法真正使用不同的列创建不同的映射 因为会有大量的组合 我正在使用条件 API
  • NHibernate HQL 相当于 T-SQL 的 TOP 关键字

    NHibernate HQL 相当于 T SQL 的 TOP 关键字是什么 另外 用非 HQL 方式说 给我一门课的前 15 个 是什么意思 在 HQL 中这实际上非常简单 var top15 session CreateQuery fro
  • 急于获取引用时重复(多对一)

    首先 是的 我正在使用 DistinctRootEntityResultTransformer 我有以下 Fluent NHibernate 映射 public FirstObjectMap Id x gt x Id HasMany
  • NHibernate Hi/Lo - id 中的间隙

    场景 Hi Lo 初始化为MyEntity与 Lo 100 桌子是空的 具有不同连接的两个会话都插入了三个项目 TableIds 1 2 3 100 101 102 如果稍后有第三个进来并插入三项 TableIds 200 201 202
  • 如何使用 Linq 将实体表与交叉引用表连接起来

    首先我要说的是 我对 Linq 比较陌生 但我似乎很快就掌握了其中的大部分内容 但这个问题却难倒了我 我找了又找都没有结果 我使用代码优先并创建了 2 个模型 项目 和 关键字 他们之间存在多对多的关系 我的实体模型如下所示 public
  • nHibernate 使用 Log4Net 进行日志记录,线程会话问题

    大家好 这里有一个小问题 我正在努力解决这个问题 我目前正在开始使用 nHibernate 由于工作需要 我不得不这样做 并且我在 nHibernate 的会话和多线程方面遇到了一些困难 我想在这里完成的任务是让 Log4Net 将所有内容
  • NHibernate:级联保存到子级不会插入

    我有一个像这样的双向关联 public class Parent public int ParentId get set other properties public IEnumerable
  • NHibernate 3.2 通过代码(Conformist)字典属性的类映射

    假设我有一个类 So meClass 它有一个查找字典 数据字典 我目前在 SomeClass hbm xml 中有一个映射 如下所示

随机推荐

  • 当折叠可见时,如何通过单击主体隐藏我的折叠 Bootstrap 3 导航栏?

    我正在为我将去工作的机构制作一个 WordPress 网站 我使用 Bootstrap 3 0 并创建了一个响应式菜单 如何在折叠和可见时隐藏菜单 第二张图片 单击主体 并且菜单按钮更改其颜色 只有折叠可见 bootstrap js 和 j
  • 使用 RDTSC 在 C 中计算 CPU 频率始终返回 0

    我们的讲师向我们提供了以下代码 以便我们可以测量一些算法的性能 include
  • UIScrollView 边界尚未在“viewDidLoad”中调整大小

    我有一个 UIViewController 子类 其视图在 NIB 文件中配置 该视图有一个 UIScrollView 子视图 UIScrollView 几乎占据了整个 NIB 文件 但它的超级视图作为子视图添加到一个更小的视图 在不同的
  • 组合框架:如何在继续之前异步处理数组的每个元素

    我在使用 iOS 组合框架时遇到了一些心理障碍 我正在将一些代码从远程 API 的 手动 获取转换为使用合并 基本上 API 是 SQL 和 REST 实际上它是 Salesforce 但这与问题无关 该代码用来执行的操作是调用带有完成处理
  • MySQL - 在相关子查询中限制聚合数据时嵌套子查询的替代方案

    我有一张看起来像这样的表 DataTable Date DailyData1 DailyData2 2012 01 23 146 30 212 45 2012 01 20 554 62 539 11 2012 01 19 710 69 53
  • R中删除文件夹及其子文件夹中的文件

    在 R 中 我试图删除文件夹及其子文件夹中的所有文件 但是 我想保持文件夹完好无损 最有效的方法是什么 fold lt C some path here get all files in the directories recursivel
  • 如何为单个绘图实例创建两个图例对象?

    我使用以下示例代码生成条形图 import numpy as np import matplotlib pyplot as plt x np linspace 0 5 5 y np exp x w x 1 x 0 colors blue i
  • 如何从命令提示符编译 servlet?

    我想编译一个非常基本的servlet从命令提示符 但它总是不成功 编译器告诉我以下内容 error package javax servlet does not exist 我用谷歌搜索了解决方案 发现我需要包括servlet jar库到我
  • 鼠标光标跳转到 IE 文本输入字段中字符串的开头

    当我单击其中包含文本的文本字段并将焦点设置到字符串的末尾 大多数人通常会这样做 时 光标的焦点会跳转到字符串的开头 这只发生在 IE 中 该应用程序是带有 jquery 和 javascript 的 MVC 2 如何调试这一行为 我不能使用
  • 如何迭代 JSONObject?

    我使用一个名为的 JSON 库JSONObject 如果需要的话我不介意切换 我知道如何迭代JSONArrays 但是当我解析来自 Facebook 的 JSON 数据时 我没有得到一个数组 只有一个JSONObject 但我需要能够通过其
  • 根据声音相似度确定弦之间的距离

    两个单词之间相似性的定量描述是基于它们的发音 发音 类似于编辑距离吗 我知道 soundex 给了相同的 id发音相似词 但据我理解 它不是词之间差异的定量描述 from jellyfish import soundex print sou
  • 删除源文件后,FileInputStream 仍然可以读取

    我在android中遇到了一个很奇怪的问题 在我的应用程序中 我将从缓存目录上传文件 如果用户在我的应用程序上传文件时使用诸如 cleanmaster 之类的清洁应用程序来清除我的应用程序的缓存目录 则所有文件都会被删除 但上传任务根本不会
  • 如何检测 Perl 中的空行?

    在 Perl 中如何检查一行 值 是否为空行 或其他 检查它而不是使用 的好方法 我想这样编码 if eq 检查当前行是否为空行 没有任何字符 x 0 我用下面的问题解决方案更新了一些代码 My test txt用于解析 constant
  • 从 SQL Server 表生成 INSERT 语句

    我有一个包含 330 万条记录的表 并且不想将整个内容从开发复制到生产 在客户端控制的计算机上并且无法使链接服务器正常工作 我只想复制其中 300 条左右的记录 如何生成 300 条插入语句 我想要插入的选择 SQL 是 select fr
  • 如何在 Windows 7 中查找已安装应用程序的 UpgradeCode 和 ProductCode

    我的机器上安装了一个应用程序 我也有它的源代码 但不知何故该应用程序的 ProductCode 和 UpgradeCode 被更改了 现在我想获取此已安装应用程序的 UpgradeCode 和 ProductCode 我觉得必须有一些工具可
  • 如何利用混淆矩阵的值绘制ROC曲线?

    考虑我有一个像这样的分类器A其分类结果如下表 TP TN FP FN A 225 100 175 100 TP 为真阳性 TN 为真阴性 FP 为误报 FN 为假阴性 如何绘制ROC曲线 我知道 我可以定义一个变量 并尝试根据 A 来预测它
  • 嵌套gridview获取父行

    我正在使用嵌套 GridViews 其中的每一行gridview有子gridView 我在用行数据绑定事件父网格视图 到绑定子网格视图 我的问题是 如何获取子 gridView 上父 GridView 的密钥行数据绑定 Event 下面是示
  • document.getElementById insideHTML 不显示

    这应该是一件很容易做的事情 但它不会返回任何东西 函数 love 应该启动 得到一个简单的数字提示 并吐出使用该起始数字的一些项目的列表 警报框正确显示了我所期望的内容 但我希望它显示在屏幕上 这只是我所追求的一小部分 但它是它的核心 IE
  • 滚动后的 div(不是位置:固定)

    我前段时间找到过 现在找不到了 我想找到像苹果商店里的购物车这样的东西 它是一个既不绝对也不固定的div 例如 假设它位于屏幕的中心 只有当你向下滚动时 它才会跟随滚动而不是消失 当它到达浏览器标题的边框时 我不确定我是否清楚 我已经搜索过
  • NHibernate 上值对象的单独表

    我是 DDD 和 NHibernate 的新手 在我当前的项目中 我有一个实体 Person 它包含一个值对象 比如说 Address 今天 这很好 但也许有一天我会要求我的值对象 在本例中为地址 必须成为一个实体 在尝试以 DDD 方式对