问题标签 [nhibernate-mapping]

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

nhibernate - NHibernate 单表继承

我在使用继承和 NHibernate 设置基于角色的结构时遇到问题。

基本上我想要一个名为 ObjectInRole 的抽象类。这个类(和相应的数据库表)包含一个 RoleId、一个 ObjectId 和一个 ObjectType(这将是鉴别器列)。鉴别器列将是获得角色的对象类型。

为简单起见,假设有一个包含角色列表(包)的用户对象。我想要它,这样我就可以拥有一个 UserInRole 类,它是 ObjectInRole 的子类。

我已经像这样创建了这个包:

我已将 ObjectInRole 的映射设置为:

进行此设置并运行它后,当我将新角色添加到用户对象的集合中时,我无法保存要保存的 ObjectType 字段。它在 ObjectToRole 表中保存了一个新条目,但 ObjectType 为空。看着袋子,它不会将它加载到集合中。我想我已经把它缩小到设置不正确的子类结构或者包设置不正确。我倾向于这个包,因为我认为它可能只是将集合视为一堆抽象类而不是子类 UserInRole。

请提供您对任一领域的看法。谢谢!

编辑:

因此,我决定直接将对象添加到表中,而不是尝试添加到包 (User.Roles.add(Role)) 并让多对多持久化链接对象。我收到一个新错误:

如果查看上面的类,我已经设置了 User 对象和 Role 对象。id 是一个身份字段,并且是这样指定的。我完全不知所措。

0 投票
1 回答
472 浏览

nhibernate - NHibernate 多对一多次获取相同的项目

在我的模型中,我有游戏。每个游戏都有一个与之关联的事件,它被映射为多对一的关联。

当我查询游戏时,在具有给定 EventId(与其 DB-PrimaryKey-id 不同)的事件中,NHibernate 为每个游戏发出以下查询:

在我的映射中(以及在从映射生成的数据库中)EventId 具有唯一约束。我如何告诉 NHibernate 它应该只为给定的 EventId 获取一次事件,而不是为 N 个游戏发出 N 次相同的确切查询?

0 投票
1 回答
226 浏览

fluent-nhibernate - 如何在我的基类中映射私有属性?

使用流利的 nhibernate,是否可以在基类中映射私有属性?

我在我的基类中定义了这个:

但是当我像这样映射它时:

我得到一个FluentNHibernate.UnknownPropertyException

0 投票
2 回答
4801 浏览

nhibernate - NHibernate Fluent 与属性

我有兴趣将一些 NHibernate 配置/映射移动到代码中以帮助解决一些维护问题。谁能提供 Fluent NHibernate 与 NHibernate.Mapping.Attributes 的任何建议/优点/缺点/比较?

我对 Java Hibernate 注释有一些经验,我很喜欢,但我很好奇 NHibernate 属性是否具有可比性,以及 Fluent 是否提供了任何应该考虑的主要优点/缺点。

0 投票
3 回答
4098 浏览

fluent-nhibernate - NHibernate 中的空值对象

我有一个包含地址作为值对象的人员实体:

它在 NHibernate 文档中声明,如果值对象(Address1、Address2 等)的所有属性都为 null,则整个组件将被映射为 null(即 Person.Address 将为 null)。在所有地址字段为空的情况下,这会给我带来问题,因为在我可能拥有的页面中(我正在做 ASP MVC):

这会因空引用异常而中断。因此,我正在寻找一种干净的方法来将 Address 设置为新的 Address() 对象,而不是 null 如果当我从数据库中加载 Person 时所有字段都为空而不手动执行。我打折了以下想法:

在我的视图中进行空值检查(yuk,可怕)

使数据库字段不可为空(我正在处理旧数据库)

有人有什么想法吗?

0 投票
1 回答
1078 浏览

nhibernate - 使用 NHibernate SchemaExport 将标识种子设置为 0

我使用 NHibernate 中的 SchemaExport 类从我的 .hbm.xml 文件生成我的数据库。有没有办法将我的表上的身份种子设置为 0 而不是 1?对于 ref 表,我更喜欢将所有初始状态 id 设置为 0,并且我不希望每次在开发中重新生成数据库时都必须重置此值。我正在使用 SQL Server 2005,NHibernate 版本 1.2.1。

0 投票
3 回答
34667 浏览

c# - nHibernate,不存在具有给定标识符的行

我有一个沿着这条线的映射。

现在在数据库中,mdm_field 表中的 field_id 有时具有相关 key_field 表中不存在的值,因此它基本上破坏了参照完整性。因此,当我加载实体时,出现错误“不存在具有给定标识符的行”。如何配置映射以适应这种情况,这样它就不会在这种情况下死掉。

0 投票
3 回答
709 浏览

mysql - MySQL 的 Nhibernate 映射工具

有没有适用于 nhibernate-mysql 的映射工具?我想要一个映射工具

  1. 接受 MySQL 数据库
  2. 一般相关的hbm.xml文件
  3. 创建映射到每个表的数据访问层类。

有没有这样的工具可用?

0 投票
1 回答
129 浏览

nhibernate - 我如何在 NHibernate 中映射它

我有两个课程,Survey 和 Poll 课程。我也有问题和问题选择课程。我如何映射这些,以便得出特定的表格格式。以下是所涉及的课程。

我正在拍摄的结果表包括以下内容

最好,我真的很想知道 Fluent NHibernate,或者只是映射 xml 也可以。

0 投票
1 回答
1437 浏览

hibernate - 具有对现有表/POJO 的依赖关系的休眠映射文件

我们有一个从 hbm 映射文件创建的现有和工作数据库。

我们想为可选功能创建一些新表。

一种选择是这些新表始终存在,但我们希望表和 POJO 仅在请求时创建。

我的问题是这些表/POJO 依赖于现有的表/POJO。我已经创建了一个映射文件,但只有当它为现有表和新表以及它们的 POJO 创建创建/删除命令时,我才能让它工作。

我可以避免这个现有的表/POJO for Group 出现在创建脚本中吗?

在下面的示例中,Group 是一个现有的表/POJO。

生成它的 ant 目标如下,并且仅在列出依赖对象时才有效:

如果没有对 Group 的依赖引用,我会收到错误消息:

构建失败 C:\projects\foo\db-build.xml:187:架构文本失败:来自表 DISCON_TEST 的关联引用了未映射的类:uk.co.foo.domain.dfwv.Group

休眠版本:3.1.2