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

asp.net - 如何在 VB.NET、LINQ to SQL 中使用复选框列表插入一对多关系?

我有 3 张桌子:

客户
类型客户ID


事件类型事件类型ID

CustomerEventType
CusID
EventTypeID

如何在 VB.NET、LINQ to SQL 中使用复选框列表插入一对多关系?

然后我希望它根据刚刚插入的最后一个 EvenTypeID 数据和使用有界 fromCustomerEventType的 CusID 检查自动将数据插入表中(假设有 2 个 ID)。CheckBoxList1CustomerType

单击插入按钮后,EventType 表和 CustomerEventType 表中的数据应为:

EventType
EventTypeID
1

CustomerEventType
EventTypeID.....CusID
1.......................1
1............ ............2

我唯一的问题是,插入按钮背后的代码应该是什么,使用 VB.NET LINQ-to-SQL 来获得这个结果?

0 投票
2 回答
1426 浏览

nhibernate - nhibernate 映射不保存/插入插入子类的键

在对我的映射进行了一些更改之后( 有关原因,请参阅我关于级联删除的其他问题),我尝试插入一个全新的对象及其所有子类。

在此之后出现了另一个问题,即将密钥插入数据库的问题。情况如下:

我有一个带有 2 层子类的对象,都是一个集合。

让我们调用对象 Parent,这个对象有一个子集合,并且这个集合中的每个实体都有自己的实体集合。映射如下。

父母对其的映射<set>

CollectionObject 的映射

第二个集合中对象的映射映射与上述类似。设想的情况是,我保存父级,这将触发子类/集合的保存。

例如,我有 ID = 1 的 Parent,Parent 填充了 1 个集合,并且这个集合有自己的 1 个集合。

所以我保存父级,父级从数据库中获取一个 ID(本机 sql 身份)。现在,第一个集合应该将其 ParentID 属性填充为 Parent 刚从数据库中获得的 ID。并且该集合的集合应该使用 Child 从数据库中获取的 ID 填充其 ChildID,其方式与 Parent 获取其 ID 的方式相同。

现在发生的事情是(我在 NHProf 中检查了创建的 SQL)所有内容都被插入,具有自己的 ID,但是集合没有用其父类的 ID 填充它们的键列。(相反,它只是插入 0)

所以我的问题归结为,我忘记添加到我的映射中导致发生了什么?关键列不做我认为应该做的事吗?

如果我忘记在这里添加任何内容,请说出来。我很乐意提供更多信息。

更新

我认为问题可能与没有<many-to-one>标签的孩子有关。所以我尝试将其中一个添加到第一个子映射中。我想出了这个

但是,此设置给了我以下错误。 Exception occurred getter of Parent.ParentID

带有内部异常 {"Object does not match target type."}

可悲的是,这个错误并没有让我知道从哪里继续。

0 投票
2 回答
1227 浏览

iphone - 当顺序很重要时,寻找一种优雅的方式在 coredata 中存储一对多关系

我一直在想办法解决我的问题,但我能想到的每一个解决方案都很混乱,让我想干呕。

我有一个一对多的关系,由一个可以有许多 Member 对象的 Team 对象组成。当我使用 Xcode 构建我的数据模型时,我得到了存储成员对象的默认 NSSet,不幸的是,集合没有排序,我需要保留成员对象的顺序,我需要知道之间是否有空格成员。

我想过使用 NSArray 代替 NSSet 并在我的数据存储中创建一个虚拟的 Member 对象,我可以用它来标记 Member 对象之间的空白点,但是这个解决方案对我来说真的太难了。因为我总是必须从任何查询中过滤掉这个虚拟成员。

NSDictionary 将是完美的,因为我可以将成员对象引用及其位置存储为对象键对(同时处理顺序和空缺),但显然 CoreData 不支持 NSDictionary。

有没有人有类似的需求,并设计了一个简单的解决方案?

0 投票
2 回答
177 浏览

mysql - 如何将表链接到 MySQL 服务器中的字段 a

我有来自 xml 文件的数据:

这形成了名为“words”的表,它有四个字段(“id”、“word”、“meaning”和“translation”)。另一方面,“翻译”字段可以包含多种语言,如 ES、PT、EN、JA、KO 等……所以我创建了一个表(“words.translation”,一个字段是“id”,其他字段那些是诸如“ES”,“PT”,...之类的语言ID。

对于这个新问题,我很抱歉,但我想知道一些关于这种一对多关系的事情。

  1. 如何在 MySQL 中加入(或链接?)这两个表?
  2. “words”表中的“translation”字段要存储哪些信息?
  3. sql查询如何获取所有单词信息(使用JOIN语法?)

谢谢你的耐心。

0 投票
4 回答
10813 浏览

sql - 仅当至少有一个孩子时如何选择父行?

我有一个简单的一对多关系。我只想在父母至少有一个孩子时才从父母那里选择行。因此,如果没有子行,则不会在结果集中返回父行。

例如。

我希望结果是:

0 投票
1 回答
775 浏览

java - Hibernate 1:M 关系、行顺序、常量值表和并发

表A和B需要有1:M的关系

a 和 b 在应用程序运行时添加,因此创建了 A,然后说创建了 4 个 B。每个 B 实例都必须按顺序排列,以便我以后可以按照添加它们的顺序提取它们。

该应用程序将是在 Tomcat 上运行的 Web 应用程序,因此可以同时运行 10 个实例。

所以我的问题是:

1)如何保留插入顺序,以便我可以提取 A 引用的 B 实例,其顺序与我持久化它们的顺序相同。这很棘手,因为我们添加到 Collection 中,然后它会被保存(对吗?)。那么,这取决于Hibernate如何保存它,如果它改变了我们添加实例的顺序怎么办?我在描述关系时看到了类似 LIST 而不是 SET 的东西,这是我需要的吗?

2)如何向 B 添加第三列,以便我可以区分实例,例如 B 表中的 SEX(M,F,U) 。我需要一个特殊的表,还是有一种简单的方法来描述 Hibernate 中的常量。你有什么建议吗?

3)谈到并发,你推荐使用什么方法?数据库中应该没有冲突,如您所见,如果没有在没有延迟地调用它的地方插入行(添加PK),可能很容易出现一些冲突?

0 投票
6 回答
121400 浏览

java - 双向 JPA OneToMany/ManyToOne 关联中的“关联的反面”是什么?

@OneToManyJPA 注释参考的示例部分:

示例 1-59 @OneToMany - 带有泛型的客户类

示例 1-60 @ManyToOne - 带有泛型的订单类

在我看来,该Customer实体是该协会的所有者。但是,在mappedBy同一文档中对属性的解释中,写道:

如果关系是双向的,则将关联的反向(非拥有)侧的 mappedBy 元素设置为拥有该关系的字段或属性的名称,如示例 1-60 所示。

但是,如果我没记错的话,在示例中,mappedBy实际上是在关联的拥有方指定的,而不是在非拥有方。

所以我的问题基本上是:

  1. 在双向(一对多/多对一)关联中,哪个实体是所有者?我们如何将 One 指定为所有者?我们如何将多方指定为所有者?

  2. “关联的反面”是什么意思?我们如何将一侧指定为反面?我们如何将多面指定为反面?

0 投票
1 回答
117 浏览

java - 在 Hibernate 中,在 cascade="all" 关系中获取 Child 的 ID,同时将其添加到集合中

我有两个实体,“父”和“子”,它们通过双向一对多关系链接,级联属性设置为“全部”。使用下面的代码将 Child 对象添加到 Parent 子集合时,在提交事务之前我无法获取持久子对象的 ID:

但是,当我通过显式调用 session.save() 方法来持久化子实体时,会立即创建并设置 ID,即使事务尚未提交:

有没有办法在不调用 session.save() 方法的情况下立即获取子实体的 ID?

谢谢

0 投票
1 回答
1271 浏览

nhibernate - Nhibernate 一对多与每个子类的表

我正在自定义 N2CMS 的数据库结构,遇到了一个问题。下面列出了这两个类。

nhibernate映射如下。

然后,当获取客户实例时,customer.Licenses 始终为空,但实际上数据库中有客户的许可证。当我检查 nhibernate 日志文件时,我发现 SQL 查询是这样的:

似乎 nhibernate 认为 CustomerID 在“n2item”表中。我不知道为什么,但为了让它工作,我认为 SQL 应该是这样的。

有人能指出我的映射有什么问题吗?我怎样才能获得一位客户的正确许可证?提前致谢。

0 投票
9 回答
78231 浏览

java - @OneToMany 和复合主键?

我正在使用带有注释的 Hibernate(在 spring 中),并且我有一个具有有序、多对一关系的对象,该对象具有一个复合主键,其中一个组件是返回到父对象的id。

结构看起来像这样:

我尝试了各种注释组合,但似乎都不起作用。这是我能想到的最接近的:

经过长时间的实验后,我得出了这个结论,在这些实验中,我的大多数其他尝试都产生了由于各种原因休眠甚至无法加载的实体。

更新:感谢大家的评论;我已经取得了一些进展。我做了一些调整,我认为它更接近(我已经更新了上面的代码)。但是,现在问题在于插入。父对象似乎保存得很好,但子对象没有保存,我能够确定的是休眠没有填写子对象的(复合)主键的 parentId 部分,所以我m 得到一个非唯一错误:

我在自己的代码中填充了nameandpos属性,但是我当然不知道父 ID,因为它还没有保存。关于如何说服hibernate填写这个的任何想法?

谢谢!