问题标签 [hbm]

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

c# - 使用带有 NHibernate.Mapping.Attributes 的鉴别器为每个子类做表

我正在尝试为每个子类做表:使用 NHibernate.Mapping.Attributes 的鉴别器。hbm 应该如下所示:

代码如下所示:

结果是这样的:

它创建了正确的表结构(一个表有两个十进制字段和一个 PF/FK 到 Reports 表),但是在插入数据时它失败了,因为它为每个字段生成了两个插入:

有没有办法使用 NHibernate.Mapping.Attributes 完成这项工作?

0 投票
1 回答
2354 浏览

java - 从 hbm 文件生成 Hibernate 复合键对象

(括号里的咆哮:)我是一个 Hibernate 初学者,对我可以在 15 秒内用 SQL 编写的简单连接的开销感到有些沮丧。(结束吐槽)

情况是这样的:我有 2 个表,它们都包含相同的复合主键 - 让我们将两个表中的列称为“ID”和“版本”。我需要两个表中有关特定 ID/版本的数据,所以

糟糕的桌子设计,但不在我手中。

在 Hibernate 中,我的在线研究建议创建一个单独的复合键类以供表共享,其中一个 A 对象包含一个 B 对象,并且在 A 的 hbm 文件中它们之间存在一对一的映射。

在我的项目中,我所有的 Hibernate 数据对象都是用 hbm 文件生成的,并且位于同一个地方。所以我想知道我是否可以使用 hbm 文件创建这个复合键对象并将其与它的兄弟一起存储。问题是,它没有特别映射到任何(或者,您可以说它映射到 2 个表)。我正在尝试确定是否可以使用 hbm 文件创建此复合键类,以及是否建议这样做。我会以错误的方式解决这个问题吗?

提前致谢。

0 投票
3 回答
1001 浏览

nhibernate - 如何使用具有流畅映射的 s#arparchitecture 导出 hbm xml 文件

之前有人问过这个问题,但答案都显示了如何从 fluentnhibernate 导出 hbm 文件。我们正在使用包装流利的 S#arpArchitecture。我能够导出架构,但我真正想要的是 xml 文件来解决错误。我之前使用 FNH 完成了此操作,但是将 S#arp 添加到混合中会很复杂,我无法弄清楚。

我在几个论坛上发现了这个问题,但我找不到一个显示如何获取映射文件的问题。

0 投票
1 回答
88 浏览

.net - 如何使用 HBM 文件覆盖 S#arp 架构自动映射?

我在 S#arp 架构中遇到了复合键的问题。任何人都有如何做到这一点或如何将映射文件与自动映射一起使用的示例?

0 投票
2 回答
1230 浏览

nhibernate - 如何可视化 NHibernate hbm.xml 文件

是否有任何工具或聪明的方法可以让我可视化 NHibernation hbm.xml 文件的内容?

我想将 hbm 文件加载到设计器中,并将它们视为具有关系的实体

0 投票
2 回答
396 浏览

.net - NHibernate 启动缓慢,HBM 的条件加载和“关联引用未映射类”

背景

我们有几个项目/应用程序运行相同的模型。它们都有自己独特的实体/表,但也共享 1 个特定的通用实体/表。即应用程序 A 需要的实体,应用程序 B 将永远不会需要,但公用表除外,反之亦然。现在公用表与应用程序 A 的表以及应用程序 B 的表都有关系。加载大量 HBM 时事情会变得相当缓慢,因此我们实现了一个系统,该系统仅加载当前正在运行的应用程序所需的 HBM。

问题

在应用程序 A 中,当我们现在访问公共表/实体时,如下所示:

我们得到以下异常

NHibernate.MappingException:关联引用未映射的类:(应用程序 B 的实体)

我希望 NHibernate 只有在我们明确尝试通过公共实体的关系访问应用程序 B 的表时才会中断,结果它不会中断,因为我们从未从应用程序 A 这样做。但是,唉。

问题

有没有办法配置 NHibernate 来延迟关系映射的验证,直到它被访问?

我们确实使用延迟加载。

0 投票
1 回答
1913 浏览

nhibernate - 当在 HBM 中定义 lazy=false 时,如何使用 setFetchMode(Lazy) 运行 Nhibernate ICriteria 查询?

我想使用惰性多对一关联运行条件查询。这些关联lazy="false"在 HBM 中设置。这是因为我们在 90% 的项目中都急切地使用它。

但是有一些“大”查询应该作为lazy="proxy".

HBM:

标准设置:

它以相反的方式工作,但不是这样。它急切地取来。

LOC 是 20K+,如果以相反的方式进行,那将是一个巨大的重构。

我怎样才能强迫它只在我想要的时候懒惰地获取,而在其他时候急切地获取?

提前致谢!

0 投票
1 回答
468 浏览

nhibernate - 您可以为具有公共列的表重新使用 nhibernate 映射文件吗

我们有一堆查找表,它们都共享相同的列(ID、代码、描述等),我的同事只是问我是否可以构建一个通用的 lookup.hbm.xml 映射文件并将其用作基础所有其他查找表。nhibernate 是否支持包含文件,或其他引用公共 XML 块的方式?我知道 Fluent 支持映射类中的继承,但不幸的是,切换映射技术不是我们的选择。

0 投票
1 回答
3565 浏览

nhibernate - NHibernate 属性映射,类型属性的最佳实践?

我对 hbm 文件中的属性映射有点怀疑。

有时我以这种方式映射了我的数据库的字符串字段:

但同样的映射可以这样写:

我的问题是……更好的方法是什么?

如果我省略属性标签的“类型”属性,它会起作用,但我不知道是否有一些禁忌症。你能告诉我吗?

最后一件事……是对的吗?

db varchar 字段 -> 键入“AnsiString”

db nvarchar 字段 -> 键入“字符串”

0 投票
2 回答
912 浏览

hibernate - 遗留数据库结构 Hibernate 映射问题

我在映射以下数据库结构时遇到问题(为简洁起见,仅使用 PK/FK 和一些额外的列进行了缩短:

政策

Policy_Id (PK) ...

风险

Risk_Id (PK) ...

聚会

Party_Id (PK) ...

派对角色

  • PartyRole_Id (PK)
  • Party_Id(FK 非空)
  • Policy_Id (FK)
  • Risk_Id (FK)
  • Party_Role_Type

因此,PartyRole 表可以包含将一方链接到策略的行和/或将同一方链接到风险的行。基本上它是一个多对多连接表,但它结合了多对多关系:Party<->Policy 和一个用于 Party<->Risk 的关系。Party_Role_Type 可以是 POLICY 或 PARTY 并且有效地充当鉴别器来识别该行属于哪个关系。

我试图用 4 个实体来建模这个结构:Policy、Party、Risk、PartyRole。以下是映射: 代码:

所有 java pojo 都设置为匹配此映射,并且在集合中添加或删除对象时正确设置所有关联。策略被认为是一个聚合根,所以当它被 Hibernate 保存时,我想保存与策略关联的各方。当我将一方添加到策略和风险(以及所有相关角色)时,我得到以下异常:

引起:java.sql.BatchUpdateException:完整性约束违规:外键无父;FK_PARTY_ROLE_POLICY 表:PARTY_ROLE

怎么了?这也是映射这种关系的最佳方式吗?是否有机会在使用中间实体的情况下以某种方式映射这种关系?谢谢你的帮助。