问题标签 [many-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 投票
3 回答
7052 浏览

spring - JPA @ManyToMany 编写创建但不更新

我的团队有两个类,UserStore,由 JPA@ManyToMany注释相关。相关代码如下。

当创建一个新User对象并设置它的存储时,生活是美好的。但是当我们尝试通过我们的 Struts 2 / Spring web UI 更新用户对象时,我们看到了一些意外的行为。(通过 JUnit 运行简单的自动化集成测试时不会出现这些问题)。

简单地说,当保存 a 时User,它的 stores 集合没有更新——数据库没有显示任何变化,并且重新加载有User问题的对象表明它具有未更改的存储集。

对于这个问题,我们找到的唯一解决方案——我们不喜欢这个解决方案,它让我们团队中的所有开发人员都感到有些不安——是创建一个新SetStores,然后执行user.setStores(null),然后执行user.setStores(stores)

我们正在使用OpenEntityManagerInViewFilter; 我们使用 Hibernate 作为我们的 JPA 提供者;我们正在使用 Spring 的 JpaTransactionManager。我们的代码中没有任何@Transactional注释——添加它们会由于其他地方描述的代理行为而破坏现有代码。

欢迎任何人提供任何关于我们如何以轻松的方式解决这个问题的见解。


User.java 的相关部分:

Store.java 的相关部分:

UserDetailAction.java 的相关部分:(向下传递一两层,然后:)

0 投票
0 回答
3220 浏览

fluent-nhibernate - Fluent NHibernate 有很多对很多约定问题

我是流利的 nhibernate 和 nhibernate 的新手。我想编写一个流畅的 nhibernate autopersistence 约定来处理为我的实体创建多对多映射。

这就是我现在所拥有的:

它似乎有效,但我觉得有更好的方法来做到这一点。

现在我的问题:

  1. 你有更好的方法来做到这一点吗?
  2. 你通常想要这里的级联行为吗?
  3. 除了确保此关联的双方最终使用相同的表名之外,我是否需要担心一些事情?
0 投票
2 回答
1481 浏览

entity-framework - 实体框架中的多对多关系问题

我有 3 个实体 -Direction -City -GeoPosition

每个方向都有一个地理位置,每个城市都有一个地理位置的集合(这代表一个多边形)

我有 5 个表 -directions -cities -geopositions -directionsgeopositions -citiesgeopositions

EF实体就是这个

替代文字 http://img192.imageshack.us/img192/5863/entitydesignerdiagram.png

每个实体都有用于插入、更新和删除的函数导入

我有这个错误

我需要关系表的函数导入?

问题是什么?

0 投票
2 回答
1948 浏览

sql-server - NHibernate 多对多映射与映射表中的附加列

有两个表 Person 和 Address。我有一个映射表 PersonAddressMap ,其中包含一个附加列 IsCurrent 而不是两个外键(没有显式主键列)。我为 Person、Address 和 PersonAddressMap 创建了三个映射类。我需要访问一个人的所有地址,还需要从地址访问所有具有特定地址的人,所以我在 Person 和 Address 类中都有一个与 PersonAddressMap 的一对多。现在的问题是双向关联正在创建一个无限循环。如果我删除其中一个关联,负载工作正常,但 Save 没有插入到映射表中(例如:如果我只有一个从 Person 到 PersonAddressMap 的关联并尝试插入一个具有新地址的新 Person 那么只有 Person 是被插入。)。

提前致谢。

0 投票
4 回答
216 浏览

c# - 从具有额外字段的一对多表中设计类

如何将数据库中一对多关系中的任何其他属性建模回类?

例如,我有 3 个表 Model、Manager 和 Model_Manager。Model_Manager 表具有 ModelId、ManagerId 和两个额外属性 - Percentage 和 Owner。

起初,我创建了两个类 Manager 和 Model,Model 类包含一组 Managers 来捕获 1-Many 链接。

但是现在我在哪里放置额外的百分比和所有者属性。即使它不是“真正的业务”类,在设计中实际有一个 Model_Manager 类是否有意义?

0 投票
2 回答
416 浏览

ruby-on-rails - 与 ActiveRecord 的同一模型的多对多关联?

我正在关注本教程,该教程在 has_many :through 关系中表现出色。我有正常的事情,比如 category_product 工作。

但是,我无法将这种情况概念化(也无法使其发挥作用):我有一个具有相关类别的类别。由于每个类别都可以有 N 个类别……首先,这实际上是多对多的情况吗(我很肯定它是)?其次,这会是什么样子?我的迁移如下所示:

我的模特的胆量是

这显然是不对的,尽管它已经到达那里(即,它已 100% 损坏)。我怎样才能做到这一点?

编辑:我忘记了这一点,但只在这里(意思是这不是答案):

0 投票
1 回答
2048 浏览

asp.net-mvc - 使用 LINQ to SQL 和 ASP.Net MVC 进行多对多插入

我有两个表:Products(ProductID, ProductName)和 之间的Categories(CategoryID, CategoryName) 多对多关系ProductsCategories ProductsCategories(ProductID, CategoryID)

如何实现一个视图,使用户能够使用 Asp.Net Mvc 和 LINQ to SQL添加和编辑具有多个类别的产品?

0 投票
2 回答
3534 浏览

ms-access - 带有所有选项复选框的多对多 MS 访问表单

我正在为夏令营开发 Microsoft Access 应用程序,以跟踪哪些实体已经注册了哪些活动。有一个用于编辑实体信息的表格。我想在该表格中添加所有活动选项的列表。每个选项都应该是一个复选框。当一个选项的复选框被选中时,一个条目应该存在于连接实体与活动的多对多联结表中。

谷歌提供了一些构建多对多表单的示例,但没有一个(至少我发现)显示如何提供带有复选框的完整选项列表。

我该怎么做?

数据库表布局:Entity(EntityID、first name、last name等)Activity(ActivityID、Activity名称)Entity_Activity(EntityID、ActivityID)

0 投票
2 回答
348 浏览

entity-framework - 如何在实体框架 (.Net 4.0) 中使用导航属性作为主键?

我正在尝试使用 VS2010/.Net 4.0 在实体框架中引入的模型优先方法,现在我真的不知道该怎么做。我从以下实体开始:

其中NameAddressDuration是我定义的复杂类型。

现在,我想添加一个实体,它作为从toRSVP的多对多映射工作,但也包含一些我称为的复杂类型的额外信息。该表可能看起来像这样:ContactsEventsPayment

当尝试在模型设计器中构造这个实体时,我想通过向各个表添加多对多关系来添加ContactId和字段,但是当我这样做时,我无法选择这两个字段作为主键EventId表(或实体的实体键)。

我该怎么做呢?

0 投票
6 回答
7880 浏览

sql - 多对多连接表可以有两个以上的列吗?

我有一些从多对多表中受益的表。例如团队表。

团队成员可以在团队中担任多个“职位”,所有职位都列在职位数据库表中。以前持有的职位也为此存储我有一个单独的表,所以我有

  • 成员表(包含团队详细信息)
  • 职位表(包含职位)
  • member_to_positions 表(成员 ID 和职位 ID)
  • member_to_previous_positions(成员 ID 和职位 ID)

很简单,但关键是现在一个团队成员可以属于许多团队啊。我已经有一个 team_to_member 查找表。现在问题来了,我如何将位置与团队联系起来?一名成员可能曾是一个团队的团队负责人,目前是另一个团队的团队广播员和新闻官。我如何只提取每个成员的信息以显示他当前的位置,以及他过去的历史,包括过去的团队。我是否需要添加一个 position_to 团队表并以某种方式交叉引用它,或者我可以将团队添加到成员到职位表中吗?

这一切都非常令人困惑,这种标准化。