问题标签 [bidirectional-relation]
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.
nhibernate - NHibernate 多对多表未更新
我有 3 个表,它们是具有多对多关系的“新闻”、“标签”、“News_Tags”。
通过以下映射,“News”和“Tags”表已更新,但“News_Tags”尚未更新。
谁能帮我?
消息:
标签:
新闻_标签
非常感谢
道明。
nhibernate - nhibernate 多对多映射:为什么整个包集合被删除并重新插入?
期待 Nhibernate 用户、专业人士、专家和开发人员。请帮忙 !!!
我想实现两个类之间的:m 关系。一个学生参加更多的课程,一个课程由更多的学生组成。我使用包进行多对多双向关联,以从每个站点获取两个列表。
两个学生和课程类:
在数据库中有两个表 t_Student、t_Course 和一个关系表 tr_StudentCourse(id, student_id, course_id)。
在双向关联中,课程被选为反向。我做了与 nhibernate 文档第 6.8 节中的示例 (Categorie, Item) 相同的操作。因此,我通过调用添加/删除方法在 MyCourses 列表中插入课程后保存了学生对象。
效果很好,可以在数据库中找到 st1、c1 及其关系 (st1,c1)。关系数据集是 (id= 1 , st1.id, c1.id) 和 (id= 2 , st1.id, c2.id)。然后我向对象 st1 添加更多课程。
我可以看到 3 个关系数据集,但是删除了两个旧关系,并使用另一个新 id 创建了新的三个。(id= 3 , st1.id, c1.id), (id= 4 , st1.id, c2.id) 和 (id= 5 , st1.id, c3.id)。关系表中没有 id=1 和 2 的数据集。
如果我从 student.MyCourse 中删除课程然后保存学生对象,则删除相同。所有集合也被删除并重新创建了一个新列表,其中少了一个已删除元素。这个问题使得关系表中的 id 的创建速度非常快,并且通过对关系进行备份而产生了麻烦。
我在互联网、文档和论坛中查看了几天,以找出为什么整个旧集合被删除以及每次更改都创建了一个新集合,但我没有成功。这是来自休眠映射的错误还是我做错了什么?
我非常感谢您的帮助和回答。
Nhibernate 文档http://nhforge.org/doc/nh/en/index.htm
uml - Footballer Mapper 和 Bowler Mapper 之间的双向关联
这个问题是关于 Martin Fowler 的名为 Patterns Of Enterprise Application Architecture 的书中的一个特定 UML 图。
在第 302 页的“继承映射器”类图中,为什么Footballer Mapper和Bowler Mapper之间存在“双向关联” ?
nhibernate - NHibernate 双向一对一映射问题
在尝试在 NHibernate 中创建双向一对一映射时,我发现,我无法递归地获得对象的引用。
Person
例如:假设我在和之间存在一对一的关系Address
。
然后在执行以下代码后,
我需要null
从p.Address.Person
. 即 ID 为 1 的同一个人。
但是该属性正在返回一个null
-value。
我应该寻找什么来解决问题?
我的数据库表是这样的:
人.hbm.xml
地址.hbm.xml
我也收到一个错误:
java - 为什么休眠执行两个查询以急切加载@OneToOne 双向关联?
我有一个实体 A,它有一个 B 实体,而 B 有一个带有 @OneToOne 双向关联的 A。
现在,当我找到所有 A 记录时,hibernate 在 B 上使用左外连接执行两个查询,如下所示:
第一次查询加载 A 和 B 字段是可以的,但是为什么要执行第二次查询来重新加载 A?我认为这个查询在 B 中加载了 A 内容,但是这个 A 显然是包含 B 的 A ...所以它已经加载了第一个查询,不是吗?
- 编辑 -
实体 A:
实体 B:
就是这种情况,A 上的 findAll 需要两个查询……为什么?
python - 在 MongoEngine 中实现双向关系
我正在构建一个使用 MongoDB 和 MongoEngine 来存储数据的 Django 应用程序。为了呈现我的问题的简化版本,假设我想要两个类:用户和页面。每个页面都应该与一个用户相关联,每个用户一个页面。
(请注意,必须在 User 之前定义 Page。如果我缺少处理循环依赖项的 Pythonic 方式,请告诉我。)可以很好地创建和保存每个文档,但是将 Page 分配给 User 会引发错误。
谁能解释为什么抛出这个异常,我做错了什么,以及如何避免它?
c# - 使用 Fluent NHibernate 自动映射创建多个双向一对多关联
我对 NHibernate 和 .NET 框架还很陌生。
我想映射我的 Project 类,它具有一对多的关系 Subproject 和 ProjectTask 类。
我的实体从抽象基类继承 Id 属性。
我使用自动映射来覆盖以重新定义我的映射:
当我只映射与 Subproject 类的关联时,一切正常,并且 Project.Subprojects 中 Subproject 类的所有实例都将正确存储到数据库中。当我对 ProjectTask 类使用第二个覆盖时,我得到以下异常:
---> NHibernate.HibernateException:数据库中已经有一个名为“ProjectId”的对象。无法创建约束。请参阅以前的错误。
---> System.Data.SqlClient.SqlException:数据库中已经有一个名为“ProjectId”的对象。
有谁知道,为什么会这样?
sql - 我的 SQL 语句将“Arnold Schwarzenegger”和“Hasta la vista baby”插入这两个空 SQL 表中是什么?
将“Arnold Schwarzenegger”和“Hasta la vista baby”插入到以下空 SQL 表中,我的陈述是什么?
这个问题的标题原本是“如何将第一条记录插入到具有双向关联和自动生成整数PK的SQL表中?” 但我不确定我的措辞是否正确......基本上,我有两张桌子Actors
和CatchPhrases
.
Actors
好像:
CatchPhrases
好像:
因此,Actor 可以有多个流行语,但必须至少有一个。流行语与演员相关联。目前这两个表中都没有数据。
nhibernate - nhibernate - nhprof - 延迟加载的无界结果集,用于一对多双向关联
我有一个具有相应子级的标准类别域实体。即类别及其对应的子类别。这如下所示。真的很标准的东西。
我正在使用 NHibernate 分析器来确保一切都以最佳方式运行。但是,当我通过调用“RemoveCategory”方法并传入一个类别来删除子类别时,它必须访问名为“_children”的底层集合,该集合会启动“_children”集合的延迟加载。
这会在 NHProf 中导致“Unbounded result set”警报,这是有道理的,因为我们没有指定限制。它将加载整个集合。我想指定一个限制,因为这个集合可能会变得非常大。
我已经查看了 nhprof 网站上关于无限结果的示例(如下所示),但我看不到如何使用它。
当我们显示数据但我想更新我的实体并最终保留它时,这似乎很有用。关于如何指定集合的延迟加载限制的任何想法?
亲切的问候
穆罕默德
java - 构建hibernate实体时如何处理双向关系?
我想用 JPA/Hibernate 对两个实体、一个组和一个帐户之间的关系进行建模。一个帐户可以有多个组,但反之则不行,因此我们在帐户和组之间建立了 OneToMany 关系。我的工作同事建议对实体进行建模,Account
并Group
喜欢
和
我现在的问题是addToAccount
关于Group
. 根据我的工作同事的说法,这种方法是必要的,因为我们需要从双方更新两个实体之间的双向关系,以确保两个实体的内存模型一致。
但是我相信在构造函数中调用该方法addToAccount
不是一个好主意,因为
List
of s 是延迟获取的Group
,因此调用该方法addToAccount
需要一个打开的事务。所以Group
只能在打开的事务中调用构造函数。在我看来,这是一个非常烦人的限制。作为构造函数的参数给出的
Account
对象Group
由构造函数更改。在我看来,这是构造函数的一个令人惊讶的副作用,Group
不应该发生。
我的建议是更好地使用一个简单的构造函数,比如
并手动处理双向关系。但也许我错了。在构建休眠实体时,是否有一种常见的方式来处理双向关系?