问题标签 [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 回答
343 浏览

nhibernate - (Fluent)NHibernate: 映射一个字典

我发现了很多关于这个的帖子,但似乎没有一个能直接帮助我。此外,在 FluentNHibernate 开发的不同阶段,解决方案是否有效似乎也存在混淆。

我有以下课程:

我的问题是:

  1. 我需要一个单独的(第三个)MyEnum 表吗?
  2. 如何映射 MyEnum 类型?我是不是该?
  3. Foo 的映射应该是什么样的?

我试过映射 HasMany(x => x.Values).AsMap("MappedClass")... 这导致:​​ NHibernate.MappingException : Association references unmapped class: MyEnum

0 投票
3 回答
12705 浏览

android - Android:SQLite 一对多设计

有人对如何实现一对多映射有很好的建议SQLiteContentProvider?如果您查看,Uri ContentProvider#insert(Uri, ContentValues)您会发现它具有ContentValues包含要插入的数据的参数。问题是它当前的实现ContentValues不支持put(String, Object)方法并且类是最终的,所以我不能扩展它。为什么这是一个问题?我的设计来了:

我有 2 个表,它们是一对多的关系。为了在代码中表示这些,我有 2 个模型对象。1st 代表主记录,并有一个字段是第二个对象实例的列表。现在我在模型对象#1 中有一个辅助方法,它返回ContentValues从当前对象生成的。用重载方法填充原始字段很简单,ContentValues#put但我对列表不走运。所以目前由于我的第二个表行只是一个字符串值,我生成了一个逗号分隔的字符串,然后我将其重新解析为 String[] inside ContentProvider#insert。这感觉很糟糕,所以也许有人可以暗示如何以更清洁的方式完成它。

这是一些代码。首先来自模型类:

ContentProvider#insert这是方法的精简版

0 投票
4 回答
200 浏览

database - 在表之间的一对多关系中指定主要关系的约定是什么?

我了解如何设计一个在其表之间具有简单的一对多关系的数据库模式。我想知道将该集合中的一个特定关系指定为主要关系的约定或最佳实践是什么。例如,一个人有许多信用卡。我知道如何建模。我如何将其中一张卡指定为该人的主要卡?我提出的解决方案充其量似乎并不优雅。


我会尽量澄清我的实际情况。(不幸的是,实际的域只会混淆事物。)我有 2 个表,每个表都有很多列,比如说 Person 和 Task。我也有只有几个属性的项目。一个人有许多项目,但有一个主要项目。一个项目有许多任务,但有时有一个主要任务和备用任务,有时没有主要任务,而是一系列任务。没有不属于项目的任务,但并非严格禁止。

我似乎无法想出一种方法来同时对主要项目、主要任务和任务序列进行建模,而不会引入过于复杂或纯粹的邪恶。

这是迄今为止我想出的最好的:

对于一个简单的概念来说,它似乎太多了。


这是我发现的一个问题,它处理非常相似的情况:Database Design: Circular dependency

不幸的是,对于如何处理这种情况似乎没有达成共识,“正确”的答案是禁用数据库一致性检查机制。不酷。

0 投票
1 回答
292 浏览

nhibernate - How do I map a one-to-many relationship through a join table?

How would I go about mapping the following in NHibernate?
My entities and ERD are below. I know how to map a many-many relationship, but dont know how to map the joining table ReportTargets to the Datapoint table. You will notice that there is no ReportTargets entity model as it is not strictly a domain entity. What is the best solution here? I am a NHibernate newbie so go easy please..:) Thanks

http://img341.imageshack.us/img341/3769/entities.gif

0 投票
1 回答
899 浏览

nhibernate - NHibernate 集合未加载数据,但数据已插入数据库

不确定我在这里用 NHibernate 做错了什么。我有两个映射文件映射到两个表。我可以通过映射将数据插入到数据库中,但是调用下面的代码会返回 0,即使我可以看到在表中填充了具有正确外键的子行。这是延迟加载问题吗?谢谢。

这是我的映射文件。

年报类

月报班

0 投票
2 回答
2203 浏览

java - 在没有关联实体的情况下“在 Hibernate 背后”更新外键值

更新:我通过相反的方式“解决”了这个问题!我现在将实体引用字段设置为只读(insertable=false updatable=false),外键字段为读写。这意味着我在保存新实体时需要特别小心,但在查询时,实体属性会为我解析。


我在我的域模型中有一个双向的一对多关联,其中我使用 JPA 注释和 Hibernate 作为持久性提供程序。这几乎是您的沼泽标准父/子配置,不同之处在于我想将父的外键作为子的单独属性与对父实例的引用一起公开,如下所示:

这在大多数情况下都可以正常工作,但是在很多(遗留)情况下,我想在 parent_id 列中放置一个无效值,而不必先创建一个虚假的 Parent。

不幸的是,由于 ,Hibernate 不会保存分配给该parentId字段的值insertable=false, updatable=false,当同一列映射到多个属性时,它需要它。有什么好方法可以“在 Hibernate 的背后”并将值潜入该字段,而无需下拉到 JDBC 或实现拦截器?

谢谢!

0 投票
2 回答
2734 浏览

sql - 如何在 MySQL 中将一对一关系更改为一对多关系?

我目前有一个用户表,其中包含 Youtube OAuth 令牌的一对一关系。但是,我现在想支持多个视频站点,并希望将其分解为一对多的关系。

我已经设置了新表:

令牌 - cols:id、站点、用户名(用户在 Youtube 上的用户名)、oauth_token、oauth_secret

user_tokens - 列:id、user_id、token_id

有没有办法可以从我当前用户的表中选择这些表来导入用户名、oauth_token 和 oauth_secret 列,同时还可以使用适当的 id 设置 user_tokens 表?

过去我曾编写过简短的 PHP 脚本来执行此操作,但一直很好奇我是否可以直接在 MySQL 中执行此操作。

0 投票
4 回答
240 浏览

sql - 如何正确索引一个表,另外两个表有一对多的关系?

想象一下,我有三个表,分别称为“customers”、“companies”和“phone_numbers”。客户和公司都可以有多个电话号码。索引 phone_numbers 的最佳方法是什么?是否同时拥有 customer_id 和 company_id 并保持其中之一为空?如果有两个以上的表与 phone_numbers 存在一对多关系怎么办?

0 投票
2 回答
7638 浏览

entity-framework - 将 Entity Framework 4.0 与 Code-First 和 POCO 一起使用:如何获取父对象及其所有子对象?

我是 EF 4.0 的新手,所以也许这是一个简单的问题。我有 VS2010 RC 和最新的 EF CTP。我正在尝试在 EF 团队的设计博客http://blogs.msdn.com/efdesign/archive/2009/10/12/code-only-further-enhancements 上实现“外键”代码优先示例。 .aspx _

我使用 ContextBuilder 来配置 MyContext:

这在我添加新客户时可以正常工作,但在我尝试检索现有客户时却不行。此代码成功保存了一个新客户及其所有子采购订单:

但是这段代码只检索客户对象;他们的 PurchaseOrders 列表总是空的。

我还需要对 ContextBuilder 做什么才能使 MyContext 始终检索每个客户的所有 PurchaseOrders?

0 投票
1 回答
1656 浏览

java - 使用 base=1 映射的 Hibernate IndexColumn 中的 0 值

我们正在针对 Oracle 数据库使用 Hibernate Annotations 3.4.0GA 和 Hibernate Core 3.3.2.GA(也称为当前稳定版本)

我们有一个 base=1 的一对多映射,它工作了很长时间,但上周我们在数据库中发现了一些索引列包含值 0 的条目,这导致了各种问题。

所以我的问题是:有没有人知道将值 0 放入一对多关系的索引列中的方法,当它被映射为 base=1 时?可能与使用泛型或 MappedSuperclass 有关。

请注意,代码相当复杂,因为也涉及到继承。

以下是课程的相关部分:

实际的类继承自这些并为类型参数提供具体的类。它们被映射为实体。他们还指定 id 和 version 列以及大量其他属性和引用,但与手头的映射无关。