问题标签 [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 回答
479 浏览

c# - 实体上与 nhibernate 的多对多关系

我有一个关于休眠的问题,

我有一个具有多对多关系的 hbm 文件。到目前为止这有效,但我想从实体生成 hbm

并尝试在实体上设置属性但不会编译

这是hbm文件

现在已经在实体上做了

0 投票
1 回答
4027 浏览

hibernate - Hibernate hbm 文件中的 @Audited 注释

我在我的应用程序中使用 Hibernate 作为我的 orm。

现在我想将它与 Envers 集成。目前我正在使用 hbm 文件生成实体。在那种情况下,我怎么能在 hbm 文件中提到生成类必须有 @Audited 注释。

谢谢,
纳伦德拉

0 投票
2 回答
5797 浏览

c# - 连接子类的 NHibernate 可区分子类

这是我的层次结构:

这是我在两个单独的 hbm 文件中的映射:

以下是我得到的异常:

MappingException:XML 验证错误:命名空间“urn:nhibernate-mapping-2.2”中的元素“joined-subclass”在命名空间“urn:nhibernate-mapping-2.2”中具有无效的子元素“鉴别器”。

我错过了什么?你不能映射一个连接子类的可区分子类层次结构吗?

0 投票
1 回答
59 浏览

hibernate - 在 HQL 查询方面需要帮助

我有一个简单的类,称为Person,如下所示:

每个PersonState的定义如下:

State是一个简单的类,只包含一个idname,我已经配置了所有映射文件并且可以正常工作。

我想获取最后一个PersonState(基于它的date)具有 id = 5 的State那些Persons(例如),那么 HQL 查询是什么样的?谢谢!

0 投票
2 回答
157001 浏览

hibernate-mapping - 如何将“insert='false' update='false'”映射到也用于一对多 FK 的复合 ID 键属性上?

我正在使用现有数据库模式处理遗留代码库。现有代码使用 SQL 和 PL/SQL 在 DB 上执行查询。我们的任务是使项目的一小部分数据库引擎不可知(起初,最终改变一切)。我们选择使用Hibernate 3.3.2.GA和“*.hbm.xml”映射文件(而不是注解)。不幸的是,更改现有模式是不可行的,因为我们无法回归任何遗留功能。

我遇到的问题是,当我尝试映射单向、一对多关系时,FK也是复合 PK 的一部分。这是类和映射文件...

公司实体.java

公司名称实体.java

公司名称实体.hbm.xml

此代码适用于具有名称的公司的 SELECT 和 INSERT。当我尝试更新和现有记录时遇到问题。我收到了 BatchUpdateException 并且在查看了 SQL 日志后,我看到 Hibernate 正在尝试做一些愚蠢的事情......

Hibernate 试图在更新子记录之前解除关联。问题是该字段是 PK 的一部分并且不可为空。我发现让 Hibernate 不这样做的快速解决方案是将“not-null='true'”添加到父映射中的“key”元素。所以现在可能映射看起来像这样......

公司名称实体.hbm.xml

这个映射给出了例外......

我现在的问题是我试图将这些属性添加到 key-property 元素,但 DTD 不支持。我也尝试将其更改为键多对一元素,但这也不起作用。所以...

如何将“insert='false' update='false'”映射到也用于一对多 FK 的复合 ID 键属性上?

0 投票
1 回答
4312 浏览

nhibernate - session.GetNamedQuery() 上出现“命名查询不知道”错误

调用 session.GetNamedQuery() 时,我始终收到“未知的命名查询”MappingException。我正在使用 Fluent 和 NHibernate 3.0,并且我在 hbm.xml 文件中有查询。为简单起见,我将所有东西都放在同一个程序集中。我已将 xml 文件上的构建操作设置为“嵌入式资源”。

我的配置如下所示:

我的 GetFirstParty.hbm.xml 文件如下所示:

我在这里想念什么???

请帮忙。

谢谢,

麦克风

0 投票
1 回答
1485 浏览

nhibernate - Fluent Nhibernate 和自定义集合

我有以下 Fluent NHibernate 配置...

这导致以下 HBM ......

要将集合视为列表,我添加了“AsList”方法......

这导致以下 HMB ......

但是,虽然第一个配置(没有“AsList”)可以正常工作,但第二个会导致此运行时错误:

命名空间 'urn:nhibernate-mapping-2.2' 中的元素 'list' 在命名空间 'urn:nhibernate-mapping-2.2' 中具有无效的子元素 'index'。预期的可能元素列表:命名空间“urn:nhibernate-mapping-2.2”中的“元、子选择、缓存、同步、评论、键”。

有任何想法吗?

关于我的域模型的更多细节:模板具有 id、name 和path路径片段的有序列表。

非常感谢

0 投票
1 回答
4755 浏览

java - Hibernate HBM 映射问题

我有以下三个课程:

我有以下 DDL:

我有以下 HBM 文件:

学校.hbm.xml

学生.hbm.xml

当我尝试根据学校查询 Student 对象时,出现以下异常(即使我的类路径中编译了一个名为“StudentSchool”的类):

如果我取消注释到“School”的一对一映射并注释掉到“studentSchool”的一对一映射,我会得到以下异常:

有人对我的 hbm 映射做错了什么有任何想法吗?谢谢!

0 投票
3 回答
5534 浏览

nhibernate - NHibernate - 非法访问加载集合

我有两个实体,客户和帐户。客户有许多帐户。

我的客户映射是:

我的帐户映射是:

在我的应用程序中,我根据他们的 ID 检索客户:

然后,我尝试通过以下方式获得客户的第一个帐户:

然后我收到以下异常:“NHibernate.LazyInitializationException:非法访问加载集合”

我已经尝试过针对此处发布的此问题的其他解决方案,但没有任何效果。真正奇怪的是,如果我在尝试访问帐户之前插入以下代码,那么一切正常:

我在前面的代码中所做的只是创建一个我什至不使用的变量。不知何故,它会导致语句“Account account = customer.Accounts.FirstOrDefault();” 不过要成功。

有人知道这里发生了什么吗?

0 投票
1 回答
320 浏览

nhibernate - 从另一个表的列中引用对象

我有以下对象模型:

我的表格如下:

A:ID(整数),描述(字符串)

B:ID(整数),DESCRIPTION(字符串),A_ID(整数)

C: ID(int)、DESCRIPTION(字符串)、B_ID(int)

D:ID(整数),描述(字符串),C_ID(整数),A_ID(整数)

在表 D 中,A_ID 是表 A 主键的外键。最初这样做是为了方便您ObjectAObjectD:访问ObjectD.A。这导致必须将表 A 中的 ID 添加到每个想要以ObjectA这种方式访问​​的表中,从而使数据库非规范化(想象一下ObjectEObjectF所有想要轻松访问的表ObjectA)。在这种情况下ObjectB,将始终引用ObjectA.

我想摆脱所有表中对 A_ID 的引用,但我希望能够ObjectA从我的类中轻松访问。我知道我可以在需要的时候ObjectD.ObjectC.ObjectB.ObjectA得到ObjectA,但这似乎违背了延迟加载对象的目的。

如何映射我的ObjectD,以便我可以直接访问而ObjectA无需ObjectA在 ' 表中的 ID ObjectD

注意:我使用 hbm/xml 文件来映射我的类。