问题标签 [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 投票
4 回答
3068 浏览

jpa - 当所有者实体丢失对它们的引用时,为什么 JPA 不会删除拥有的实体?

我有一个 JPA 实体“请求”,它拥有一个答案列表(也是 JPA 实体)。这是它在 Request.java 中的定义方式:

在 Answer.java 中:

在程序执行过程中,请求的答案列表可能会添加或删除答案,或者可能会替换实际的列表对象。因此,我的问题是:当我将 Request 合并到数据库时,曾经在 List 中的 Answer 对象保留在数据库中——也就是说,Request 不再持有引用的 Answer 对象(间接地,通过列表)不会被删除。

这不是我想要的行为,好像我将一个请求合并到数据库,然后再次获取它,它的答案列表可能不一样。我犯了一些编程错误吗?是否有注释或设置可以确保数据库中的答案与请求列表中的答案完全相同?

一种解决方案是保留对原始答案列表的引用,然后在合并请求之前使用 EntityManager 删除每个旧答案,但似乎应该有一种更清洁的方法。

0 投票
2 回答
2177 浏览

iphone - Core Data 中一对多关系的正确 NSPredicate 格式

我有一个具有一对多关系的托管对象模型 A 和 B。

对于这个特定的任务,我想检索与 B 有关系且属性与“字符串”匹配的所有 A 对象。

我试过了@"ALL bObjects.bProperty MATCHES 'string'",它导致了一个 objc_exception_throw:

似乎是什么问题?

任何人都可以告诉我正确的谓词格式吗?

0 投票
7 回答
3547 浏览

database - 为什么多对多数据结构需要两个额外的表?

这个问题是基于线程的

如果我们有一对多的数据结构,我们需要有一个“帮助表”来存储例如一个人的电话号码。许多人不能拥有相同的电话号码。

我期待解释为什么我们在多对多关系之间需要两个“帮助表”。这方面的一个例子是一个问题站点,许多用户可以在其中添加相同的标签:

替代文字 http://files.getdropbox.com/u/175564/db/db-55.png

为什么我们需要表格Question-Tag-xrefQuestion-Tags

为什么我们不能只有一个标签表如下?

为什么两个不同的问题具有相同的标签这一事实对计算机来说是一个问题?

0 投票
3 回答
27543 浏览

hibernate - Hibernate @OneToMany 与 mappedBy(父子)关系和缓存问题

我有这个问题很长时间了,我已经搜索了网络和SO,但还没有找到解决方案。我希望你能帮助我。

我在两个实体之间有父子关系,如下所示:

问题是当我创建一个新的孩子并将其分配给父母时,当它已经在缓存中时,父母不会得到更新。

我曾尝试使用@PreUpdate 在子项被持久化时自动将子项添加到父项,但是如果我们在 2 个不同的线程中有 2 个实体管理器(例如在 JBoss 中),问题仍然存在,直到我们调用em.refresh(parent)

所以问题是 - 有没有办法顺利消除问题并确保parent.getChildren()始终返回最新的孩子名单?

0 投票
2 回答
180 浏览

asp.net - 有人在.Net 中使用 SubSonic

在 SubSonic 3 中,如果我使用 SimpleRepository,

我可以要求它生成 forkey 还包括“一对多”、“一对一”和“多对多”吗

有什么示例代码我可以看看???

我从它的演示中看到的只是一张桌子,不处理关系

..如果它不能处理关系...我不会进入它并使用它然后...

0 投票
1 回答
4456 浏览

java - 使用除主键以外的其他内容一对多休眠

我有一堂课A,里面有一组B's。但是,这两个对象由不是主键的字段链接。

对于B,我可以使用<key column>,但是我如何指定连接应该在A. secondary_column? 不是Atable_primary_key_id?

0 投票
1 回答
373 浏览

sql - 以 1:n(一对多)关系对记录进行排序

我有两张桌子:

在这种关系中:

Person hasMany Photo <-> Photo belongsTo Person

我想列出所有带有照片的人(即使有人没有,比如杰克),并按照片的标题排序。

我应该为此编写什么 SQL 查询(MySQL)?我可以在一对多关系中使用联接吗?

PS:作为一个信息,我希望能够用记录构造一个这样的数组:

非常感谢!

0 投票
3 回答
2237 浏览

nhibernate - 如何将新对象添加到使用 NHibernate 映射为一对多的 IList?

我的模型包含一个类,该类具有本节一部分Section的有序列表。Statics忽略所有其他属性,模型的实现如下所示:

在数据库中,关系被实现为一对多,其中表Static 有一个指向的外键Section和一个整数列Position,用于存储其在列表中的索引位置。

映射在 Fluent NHibernate 中完成,如下所示:

现在我可以加载现有Static的 s,并且还可以更新它们的详细信息。但是,我似乎找不到将新Statics 添加到 a的方法Section,并将此更改保留到数据库中。我尝试了几种组合:

  • mySection.Statics.Add(myStatic)
  • session.Update(mySection)
  • session.Save(myStatic)

但我得到的最接近的(使用前两个语句)是 SQL 异常读取:“无法将值 NULL 插入到列 'Position'”。显然INSERT这里尝试了 an,但 NHibernate 似乎不会自动将索引位置附加到 SQL 语句中。

我究竟做错了什么?我在映射中遗漏了什么吗?我是否需要将Position列公开为属性并自己为其赋值?

编辑:如果我删除数据库中列的NOT NULL约束,显然一切都按预期工作。Static.Position我猜 NHibernate 会在使用值更新行后立即进行插入Position

虽然这是对问题的回答,但我不确定它是否是最好的。我希望该Position列不可为空,因此我仍然希望有某种方法可以使 NHibernate 直接在INSERT语句中为该列提供值。

因此,这个问题仍然悬而未决。还有其他解决方案吗?

0 投票
3 回答
968 浏览

sql - 为什么在 SQL 中有一个 1:m 关系的连接表

在以下数据库中的第一个 1:m 和第二个 1:m 关系之间具有联结表有什么好处?

替代文字 http://dl.getdropbox.com/u/175564/db/db-simple.png

Joe Celko's trees and hierarchies in SQL for Smarties一书说,原因是在 1:m 中具有唯一的关系。例如,下表分别限制用户两次提出完全相同的问题和两次给出完全相同的答案。

第一个 1:m 关系

第二个 1:m 关系

这种关于唯一性的好处并不能说服我让我的代码更具挑战性。我不明白为什么我应该限制在数据库中具有相同 ID 的问题或答案的可能性,因为我也许可以使用 PHP 来禁止它。

0 投票
2 回答
1143 浏览

java - Hibernate WrongClassException / Sets / Discriminators?

问题看起来像这样:

  1. 产品表。3 joined-subclassesDVDCD书籍

  2. 一个Role表(复合 id:NAME、ROLE、PRODUCT),以及按鉴别列 ROLE 的子类:actor、director、artist、author 等。它们映射到 Actor、Director、Artist、Author java 类;(我猜很平常)...

  3. 本书有作者、CD艺术家、DVD演员和导演——这些都是通过指向项目类的关系建模的,例如作者、导演、艺术家等。它们只是角色的子类(见set2 one-to-many.)

只要加入的子类只有一个这样的集合(人员/角色),一切正常。但是当它有两个,比如DVD,演员和导演时,Hibernate 会抛出 WrongClassException?

XML 摘录(Product.hbm.xml):

XML (Person.hbm.xml):

对我来说似乎还可以,但它会引发异常。谢谢你的任何想法!