问题标签 [one-to-one]

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 投票
10 回答
3594 浏览

sql - 一对一的数据库关系?

在空闲时间,我开始编写一个带有数据库后端的小型多人游戏。我希望将玩家登录信息与游戏中的其他信息(库存、统计数据和状态)区分开来,一位朋友提出这可能不是最好的主意。

把所有东西放在一张桌子上会更好吗?

0 投票
2 回答
19660 浏览

nhibernate - NHibernate 一对一映射,其中第二个表数据可以为空

我有一个现有的数据库,其中包含表 Transactions。我添加了一个名为 TransactionSequence 的新表,其中每个事务最终只有一条记录。我们正在使用序列表来计算给定帐户的交易。我已将其映射为一对一映射,其中 TransactionSequence 具有 TransactionId 的主键。

约束是事务表上有一个代替触发器不允许更新已取消或已发布的事务。

因此,当计算序列并保存事务时,NHibernate 会尝试发送事务更新,例如 'UPDATE Transaction SET TransactionId = ? WHERE TransactionId = ?'。但是由于触发器,这失败了。如何配置我的映射,以便 NHibernate 在插入新的 TransactionSequence 表时不会尝试更新 Transaction 表?

事务映射:

和序列映射:

任何帮助将不胜感激...

0 投票
5 回答
28587 浏览

java - 需要一个 Hibernate 中的主键 @OneToOne 映射示例

有人可以给我一个Hibernate中单向@OneToOne主键映射的例子吗?我尝试了很多组合,到目前为止,我得到的最好的东西是:

每当 Hibernate 尝试为上述映射自动生成模式时,它都会尝试将主键创建为 blob,而不是 long,这是 PaperCheque 的 id 类型。有人能帮帮我吗 ?如果我不能得到一个确切的解决方案,可以做一些接近的事情,但我会很感激任何回应。

0 投票
3 回答
1536 浏览

sql - 正确的一对一映射表

我想制作一个只有两个整数列的表,作为两个不同数据集之间的映射表,我希望对其施加正确的约束。

我最初将两列设置为复合主键,但后来意识到这代表了多对多,只防止发生重复的多对多映射。

如何指定我希望两列在所有行中都是唯一的整数?我正在使用 MS SQL,但我想这是一个一般的数据库设计问题。

0 投票
26 回答
42332 浏览

sql - 是否曾经有过使用数据库 1:1 关系有意义的时候?

前几天我在想规范化,我突然想到,我想不出数据库中应该存在 1:1 关系的时间。

  • Name:SSN? 我会把它们放在同一张桌子上。
  • PersonID:AddressID? 再次,同一张桌子。

我可以想出无数个 1:many 或 many:many 的例子(带有适当的中间表),但绝不是 1:1。

我错过了一些明显的东西吗?

0 投票
4 回答
14686 浏览

java - ORM:非主键连接列上的 OneToOne 映射 - 由 ISBN 映射的 Book 和 Inventory

我有一个由 ISBN 编号映射的 Book 模型和 Inventory 模型,但 ISBN 不是两者的主键。书籍属于书店,库存是一组书店(书店链)。库存由属于 BookstoreChain 的所有书店共享。

我在图书端使用 Hibernate @OneToOne 映射通过加入 ISBN 列来获取库存信息。不知何故,Hibernate 正确地生成了左外连接查询,但 Book 对象的库存为空。它也不是延迟加载的。忽略书店和连锁店,我如何在获取书籍时进行 OneToOne 或 ManyToOne 加入并获取库存?

0 投票
4 回答
3791 浏览

java - 在 JPA OneToOne 关系中更改项目后如何删除行?

如何使用 JPA/Hibernate 自动删除 OneToOne 项目?我希望在包含的类中简单地将 OneToOne 项设置为 null 会足够聪明以允许 Hibernate 删除它。

给定一个简单的对象,简化:

当在 Container 上设置 Item 时,Container 通过合并持久化,插入一行。

但是当该项设置为空,或者设置为另一个项时,旧的对象仍然存在于表中。

那么,如何删除这些 OneToOne 孤儿?

0 投票
1 回答
2401 浏览

ruby-on-rails - 基本 Rails 问题:一对一关系

遗憾的是,我对 RoR 的理解不足。我想在一个视图中保持三个一对一的关系。我有以下型号:

一个 Ood 将在 Female_Trait 表或 Male_Trait 表中有一个条目,但不能同时具有。我在 OodController 中调整脚手架的新/创建编辑/更新定义的努力没有成功。这是我在 OodController 中的错误逻辑的示例:

我错过了什么概念?

0 投票
2 回答
5832 浏览

nhibernate - NHibernate,一对一映射,级联插入

我在 Company 类和 CompanySettings 类之间存在一对一的关系。当我创建一个新的 Company 对象时(在 Company 的构造函数中为其 Settings 属性创建一个 CompanySettings 对象),然后

我希望 INSERT 从 Company 级联到 CompanySettings。但是,除非我在 CompanySettings 对象上显式调用 SaveOrUpdate,否则不会发生这种情况。

映射文件如下所示:

我的公司设置类的映射文件:

0 投票
2 回答
1737 浏览

java - 使用代理的懒惰一对一不起作用

我在经销商和卖家之间建立了一对一的关系,应该懒惰地使用代理。对于定义外键的一方(卖方,引用经销商),这很好用。但从另一方面来说它不起作用——卖家总是急切地加载。我按照“关于延迟加载的一些解释”constrained="true"中的描述进行设置,但这并没有帮助。

以下是使用的映射:

两个类都驻留在一张表中是否有问题?我看到严格来说,关系不受数据库的限制(它不能使用这个模型),但是域模型总是需要两个实体,应用程序可以确保这一点。