问题标签 [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.
c# - 实体上与 nhibernate 的多对多关系
我有一个关于休眠的问题,
我有一个具有多对多关系的 hbm 文件。到目前为止这有效,但我想从实体生成 hbm
并尝试在实体上设置属性但不会编译
这是hbm文件
现在已经在实体上做了
hibernate - Hibernate hbm 文件中的 @Audited 注释
我在我的应用程序中使用 Hibernate 作为我的 orm。
现在我想将它与 Envers 集成。目前我正在使用 hbm 文件生成实体。在那种情况下,我怎么能在 hbm 文件中提到生成类必须有 @Audited 注释。
谢谢,
纳伦德拉
c# - 连接子类的 NHibernate 可区分子类
这是我的层次结构:
这是我在两个单独的 hbm 文件中的映射:
以下是我得到的异常:
MappingException:XML 验证错误:命名空间“urn:nhibernate-mapping-2.2”中的元素“joined-subclass”在命名空间“urn:nhibernate-mapping-2.2”中具有无效的子元素“鉴别器”。
我错过了什么?你不能映射一个连接子类的可区分子类层次结构吗?
hibernate - 在 HQL 查询方面需要帮助
我有一个简单的类,称为Person,如下所示:
每个PersonState的定义如下:
State是一个简单的类,只包含一个id和name,我已经配置了所有映射文件并且可以正常工作。
我想获取最后一个PersonState(基于它的date)具有 id = 5 的State的那些Persons(例如),那么 HQL 查询是什么样的?谢谢!
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 键属性上?
nhibernate - session.GetNamedQuery() 上出现“命名查询不知道”错误
调用 session.GetNamedQuery() 时,我始终收到“未知的命名查询”MappingException。我正在使用 Fluent 和 NHibernate 3.0,并且我在 hbm.xml 文件中有查询。为简单起见,我将所有东西都放在同一个程序集中。我已将 xml 文件上的构建操作设置为“嵌入式资源”。
我的配置如下所示:
我的 GetFirstParty.hbm.xml 文件如下所示:
我在这里想念什么???
请帮忙。
谢谢,
麦克风
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。路径是片段的有序列表。
非常感谢
沙
java - Hibernate HBM 映射问题
我有以下三个课程:
我有以下 DDL:
我有以下 HBM 文件:
学校.hbm.xml
学生.hbm.xml
当我尝试根据学校查询 Student 对象时,出现以下异常(即使我的类路径中编译了一个名为“StudentSchool”的类):
如果我取消注释到“School”的一对一映射并注释掉到“studentSchool”的一对一映射,我会得到以下异常:
有人对我的 hbm 映射做错了什么有任何想法吗?谢谢!
nhibernate - NHibernate - 非法访问加载集合
我有两个实体,客户和帐户。客户有许多帐户。
我的客户映射是:
我的帐户映射是:
在我的应用程序中,我根据他们的 ID 检索客户:
然后,我尝试通过以下方式获得客户的第一个帐户:
然后我收到以下异常:“NHibernate.LazyInitializationException:非法访问加载集合”
我已经尝试过针对此处发布的此问题的其他解决方案,但没有任何效果。真正奇怪的是,如果我在尝试访问帐户之前插入以下代码,那么一切正常:
我在前面的代码中所做的只是创建一个我什至不使用的变量。不知何故,它会导致语句“Account account = customer.Accounts.FirstOrDefault();” 不过要成功。
有人知道这里发生了什么吗?
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 主键的外键。最初这样做是为了方便您ObjectA
从ObjectD
:访问ObjectD.A
。这导致必须将表 A 中的 ID 添加到每个想要以ObjectA
这种方式访问的表中,从而使数据库非规范化(想象一下ObjectE
,ObjectF
所有想要轻松访问的表ObjectA
)。在这种情况下ObjectB
,将始终引用ObjectA
.
我想摆脱所有表中对 A_ID 的引用,但我希望能够ObjectA
从我的类中轻松访问。我知道我可以在需要的时候ObjectD.ObjectC.ObjectB.ObjectA
得到ObjectA
,但这似乎违背了延迟加载对象的目的。
如何映射我的ObjectD
,以便我可以直接访问而ObjectA
无需ObjectA
在 ' 表中的 ID ObjectD
?
注意:我使用 hbm/xml 文件来映射我的类。