问题标签 [one-to-many]

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 投票
2 回答
112195 浏览

java - JPA - 保持一对多关系

也许这是一个愚蠢的问题,但它困扰着我。

我有员工与车辆的双向一对多关系。当我第一次在数据库中持久化一个员工(即它没有分配的 ID)时,我还希望保留它的关联车辆。

目前这对我来说很好,除了我保存的 Vehicle 实体没有自动映射关联的 Employee ,并且在数据库中 Vehicle 表中的 employee_id 外键列为空。

我的问题是,是否可以在保留员工本身的同时保留车辆的员工?我意识到需要先保存员工,然后再保存车辆。JPA 可以自动为我执行此操作吗?还是我必须执行以下操作:

谢谢!

编辑:根据要求,这是我的映射(没有所有其他方法等)

我刚刚意识到我应该在 Employee 类上定义以下方法:

现在上面的代码将如下所示:

更简单,更清洁。谢谢大家的帮助!

0 投票
4 回答
2611 浏览

asp.net-mvc - Asp.net MVC-如何使用EntityFramework添加order-orderDetails对象?

我有一个使用一对多关系对象的应用程序,例如 oreder-orderDetails,vith EntityFramework。

我想使用一个视图,它可以使用一些 orderDetails 对象添加新订单。

我可以创建一个强类型视图,它返回一个具有 List orderDetails 属性的订单对象,但不能填充 orderDetails。

有没有人有解决方案,如何做到这一点?

提前致谢

加布里埃尔

0 投票
2 回答
417 浏览

sql - SQL查询查找没有任何订阅指定列表的用户(多对多)

有两个表,“用户”和“列表”,以及一个将用户与列表相关联的多对多“订阅”表(因此具有外键user_idlist_id),一个 SQL 查询来查找所有不这样做的用户将是什么?没有任何特定的订阅list_id(自然包括根本没有订阅的用户)?

0 投票
1 回答
3714 浏览

doctrine - 具有限制的关系表的教义顺序

我有两个表“系列”和“程序”,程序是多对一的系列。

系列表

节目表

我想在 Doctrine (1.2) 中获得最新程序的两个系列,在这种情况下是系列 2,然后是系列 1,请参阅程序中的最后两行。

我的猜测是:

但这会返回系列 4 和系列 3。问题是 Doctrine 在执行将包含数据的查询之前使用不同的查询获取 id,他们使用这种策略,因为我认为 MySql 不能在子查询中使用限制。

我的问题,您如何通过 DQL获得系列 2系列 1 ?

0 投票
4 回答
1652 浏览

nhibernate - NHibernate 多对多关联通过使用域模型中的关系实体使两端都成为父级

实体:团队 <-> TeamEmployee <-> 员工

要求:

  • 团队和员工可以在没有对应的情况下存在。
  • 在 Team-TeamEmployee 关系中,团队负责(父级) [稍后使用 TeamRepository]。
  • 在 Employee-TeamEmployee 关系中,Employee 负责(父) [稍后使用 EmployeeRepository]。
  • 不允许重复。
  • 如果员工不在另一个团队中,则删除团队会删除团队中的所有员工。
  • 如果团队不包含更多员工,则删除员工只会删除团队。

映射:

创建员工和团队:

在此之后,我使用 transaction.Commit() 提交更改。第一个奇怪的事情是我必须保存团队和员工,而不是只保存其中一个(为什么?!)。如果我只保存所有团队或(异或)所有员工,那么我会得到一个TransientObjectException

“对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例。类型:Core.Domain.Model.Employee,实体:Core.Domain.Model.Employee”

当我保存所有创建的团队和员工时,一切都保存得很好,但是关系表 TeamEmployee 有重复的关联。

所以不是 4 个关系,而是 8 个关系。左侧有 4 个关系,右侧有 4 个关系。:[

我错了什么?

进一步的问题:当我删除团队或员工时,我是否必须从对象模型中的 TeamEmployee 列表中删除团队或员工,或者 NHibernate 是否为我完成了这项工作(使用 session.delete(..))?

0 投票
3 回答
468 浏览

subsonic - SubSonic 简单存储库一对多

我做了一个像这样的课程:

还有一个喜欢

然后我有如下代码:

它不会将 VideoCategory 保存到我的数据库中,所以显然我遗漏了一些东西。还需要做什么来保存一对多关系?

0 投票
2 回答
285 浏览

django - Django:如何定义模型关系以实现以下功能?:

我的应用程序有客户端,每个客户端都有一个计费配置文件。

我设想我的应用程序有一个“客户端”模型,该模型具有一个名为“ billing_profile ”的属性,该属性将引用另一个名为“ BillingProfile ”的模型。与其定义“ BillingProfile ”,外键返回“Client”(即“ client = models.ForeignKey(Client) ”),我在想,因为每个客户只有一个计费配置文件,我可以简单地使用一个一对一的字段。这看起来合乎逻辑,还是看起来倒退(然后我必须在建立客户端之前创建一个 BillingProfile)。与我的理解范式相比,有没有一种好的方法可以做到这一点?

0 投票
2 回答
350 浏览

django - Django:ForeignKey 选择=Customer.objects.filter(account=self.account)

显然这是行不通的,因为没有可用于“自我”的实例,但你可以看到我在这里尝试做的事情。我有一个系统,您可以在其中拥有一个帐户。您的帐户可以有客户,客户可以创建票证。我显然不希望账户持有人 A 能够登录系统并创建票证并将其分配给账户持有人 B 的客户。我将如何限制这样的选择,还是我一开始就错了?

0 投票
1 回答
513 浏览

cocoa - 如何取消链接并删除 CoreData 中的相关对象

我有一个核心数据实体,它与另一个实体具有专有的一对多关系。这种关系应该是一个基本的包含,第一个实体包含一个或多个第二个实体。第二个实体的一个实例只能包含在一个第一个实体中。

我希望能够从第一个实体中删除所有包含的实体,然后删除它们。我该怎么做?我应该删除关系然后为每个实体调用 deleteObject 还是为每个包含的实体调用 deleteIObject 会导致正确设置关系。如果第二个是真的,我可以只枚举包含的实体并调用 deleteObject 还是我应该首先制作集合的副本(如果为每个对象调用 deleteObject 会切断关系,这将修改正常枚举中不允许​​的集合)。

0 投票
4 回答
194 浏览

sql - 从一对多表中选择sql

我有 3 个表格,其中包含以下列:

消息可以涉及多个主题。问题是:给定几个主题,我需要获取关于所有这些主题的消息,而不是更少,但它们也可以是关于其他主题的。不会包含与其中一些给定主题有关的消息。我希望我能很好地解释我的要求。否则我可以提供样本数据。谢谢