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

fluent-nhibernate - NHibernate 中的条件关系

根据ObjectType列,我有一个表需要与 2 个表的关系。

例如,如果 ObjectType=1,则Object列应指向 TABLE1,如果 ObjectType=2,则指向 TABLE2。

我可以在 NHibernate 映射中或作为 Fluent NHibernate 完成此操作吗?

如果不是,你会建议我对两个表类使用相同的接口吗?(注意:表模式完全不同)

0 投票
2 回答
648 浏览

nhibernate - Nhibernate:使与地图的多对多关系成为一对一

我有两个项目 A 和 B,它们具有单向的一对一关系。(A 有一个 B)

在数据库中,它们由 ATable 和 BTable 表示,它们由 ABTable 链接在一起。(从数据库设置来看,似乎存在多对多关系,但实际上并没有,这样做是出于规范化的原因)。

问题是由于这种设置,我只能让 NHibernate 将其映射为实体之间的多对多关系。无论如何使实体具有一对一的关系?

我能想到的最好的方法是让它具有多对多关系,然后在 A 实体上有两个属性,一个返回 B 的列表,这将满足映射和第二个非映射属性,它将获得列表中的第一个 B,以满足我的应用程序。- 但这似乎不优雅。

0 投票
2 回答
3437 浏览

.net - NHibernate 数据类型 - 否是布尔值

在 NHibernate 映射中获得 YesNo 布尔类型的反向行为的最佳方法是什么?

我希望“Y”表示错误,“N”表示正确。

有 NoYes 类型吗?你写自定义类型吗?真的很容易吗?

需要反转布尔值的问题存在于 40 多个表中的至少一个字段上。试图适应遗留数据库。

0 投票
3 回答
11202 浏览

nhibernate - 使用 Fluent NHibernate 生成表索引

是否可以使用 Fluent NHibernate 与数据库模式的其余部分一起生成表索引?我希望能够通过自动构建过程生成完整的数据库 DDL。

0 投票
2 回答
24391 浏览

hibernate - Hibernate:如何将 *.hbm.xml 文件映射到不同的文件夹中?

我有一些 *.hbm.xml 文件放在 hibernate.cfg.xml 文件的同一文件夹中。现在,我想映射此文件夹子文件夹中的其他一些 *.hbm.xml 文件。我怎么能做到?谢谢!

这是我的一部分hibernate.cfg.xml

这是我的 Ant 文件的一部分:

这是我的文件夹结构



[编辑]

正如莫里斯建议的那样,我首先尝试并失败了,将线路改为

仍然给出相同的错误:

然后我继续尝试按照 Mark 的建议添加到我的 schemaexpoert 中。然后它甚至再也找不到我的“A.hbm.xml”了。给出错误:

我的 SchemaExportTask 现在看起来像:



[解决]

结论是我真的很愚蠢。它与在不同的目录中无关。我很困惑,因为我在测试阶段一次更改了两件事,然后我将这一切归咎于无辜的“目录更改”。很抱歉浪费了大家的时间。

如果有人感兴趣,这就是发生的事情。我使用本地 DTD 文件进行了一些 XSLT 转换,并在我的 XSL 文件中使用相对路径指定了本地 DTD 文件。但是我将生成的 hbm.xml 文件放到了不同的目录中——因此 SchemaExportTask 无法再找到 DTD 文件并且无法解析新的 hbm.xml 文件。由于一些愚蠢的原因,我认为以下完全不同的错误消息意味着相同的事情......非常感谢 Mark 提醒我人们写错误消息是有充分理由的!现在添加fileset仍然不起作用,但我现在知道阅读错误信息......我相信我会尽快修复它。=.=''

0 投票
1 回答
3802 浏览

nhibernate - Nhibernate - query with join table without relationship

I was wondering if anyone has tried to do this in NHibernate.

I have the following tables (simpify version).

CITY: city (varchar2) (PK) province (varchar2) (PK)

CITY_TL: city (varchar2) (PK) province (varchar2) (PK) lang (char (2)) (PK)

LOCATION: location (varchar2) (PK) some other column.

As you can see, there are no relationship between CITY and LOCATION. However, it was set up in a way that CITY.Province can equal to LOCATION.Location. So, I can execute a query like this:

select c.* from city c join city_tl ctl on c.city = ctl.city join location l on l.location = c.province

How do I do that in NHibernate? Is this even doable?

Here is my mapping files for CITY and LOCATION

CITY:

LOCATION:

Can someone shine some light on this and tell me what should the query look like in NHibernate?

0 投票
1 回答
755 浏览

nhibernate - Fluent NHibernate 对象化关系映射

寻找有关如何配置 NHibernate 以支持我的场景的答案,即具有对象化关系的多对多映射。

我有一组 Person:s 与其他 Person:s 的关系。每个关系都有一个属性,指定它们具有什么类型的关系。在 RDB 中,这是通过使用具有在该表中指定的关系类型的多对多表来完成的,然后可以通过允许更多类型来扩展模型,例如“亲密朋友”和“主要敌人”。

我希望能够查询一个 Person 对象以按类型返回所有​​相关的 Person

或者

另一个(不太可扩展的)解决方案是在类中静态指定存在哪些其他关系:

现在我必须使用带有“Person”表和“PersonPerson”表的遗留数据库。“PersonPerson”表将关系类型保存为整数。

我试图使用如下语法来做到这一点,但到目前为止没有成功......

关于使用(流利的)NHibernate 映射这个的任何提示/解决方案?

BR

/詹斯

0 投票
3 回答
2137 浏览

nhibernate - NHibernate - 为属性/列设置长度属性有什么意义吗?

属性/列的定义通常如下所示:

我假设 NHibernate 将在插入/更新行之前使用长度属性验证数据。不幸的是,这似乎是无效的假设。所以问题是 NHibernate 是否对任何东西使用长度属性?为每个属性设置它是否有意义?

0 投票
2 回答
862 浏览

.net - NHibernate - 12 个月/1 年和数据绑定

处理这个问题的最佳方法是什么我有一个应用程序,我经常必须将 12 个月的记录“透视”到一年的记录/对象中,以便能够在 DataGrid 中每行显示一年。到目前为止,我一直在使用一些丑陋的 T-SQL 在 DataSets 中进行这项工作,以实现枢轴。

我现在正在将此应用程序升级到 NHibernate,这是我遇到的一个问题。

例如,假设我有一个测试,我每月给一组学生做一次测试。我的 DDL 可能如下所示:

我想在 DataGrid 中显示(每个学生/年一条记录)这些字段:
学生姓名、年份、1 月、2 月、3 月、4 月、5 月、6 月、7 月、8 月、9 月、10 月、11 月、12 月

使用 NHibernate 处理此类任务的正常方法是什么?你会怎么处理?

0 投票
2 回答
3964 浏览

nhibernate - Fluent NHibernate HasManyToMany 和 NotFound

我有以下 FNH 映射片段:

产生以下 HBM:

问题是我正在处理遗留数据,也就是说,让我们说“不太理想”,并且一些记录的 ID 无效,所以我需要将not-found="ignore"属性放在包内的多对多标签上。我看不出有任何方法可以用 FNH 实现这一点。

.NotFound.Ignore()on the References()call,但没有 on the HasManyToManyCall。

有人能告诉我我错过了什么吗?即使在渲染后/在配置 NH 之前“注入”属性是一种技巧,我也只需要它工作即可。

提前致谢。

更新gcores 答案将不起作用,它会将其添加到错误的标签中,请参阅我对他的答案的评论以获取更多信息。