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

database-design - 关于存储应该在同一个表中的数据的问题

我正在使用的软件有 2 个表,领导和客户。当我们将产品出售给某人时,会在客户表中创建一条记录,其中包含来自潜在客户表的数据(以及一些附加数据)。

目前这两个表之间没有关系。现在存在的最好的是lead对象有一个函数可以在客户表中查找具有相同电话号码的记录(希望在过去的5-10年里它们一直是我们的客户 - 对每个潜在客户进行此类搜索会在客户表上生成 %82 交集)。没有反向查找(客户-> 潜在客户)。

问题是我确实需要知道哪些客户记录与哪些潜在客户记录相关联,反之亦然。

我考虑过存储来自客户的潜在客户的 fk 和来自客户的客户的 fk ......但是我正在使用的 ORM 会溢出,因为当 fkeys 存在时它会加载关联的记录。

将这两个表合并到一个“人”表中是我想做的,有一个标志来识别一个人是否是客户......但是唉,时间表和预算不允许。

我不知道该怎么办。

0 投票
1 回答
1204 浏览

hibernate - JPA 实体映射为 OneToOne 和 OneToMany

考虑以下 JPA 实体。我的应用程序实例类必须始终有一个对 4 个特殊信封实例的 OneToOne 引用,但它也有一组 0-infinite 用户定义的信封。这甚至可能吗?是否可以同时使用单向和/或双向参考?

0 投票
2 回答
4324 浏览

hibernate - 如何通过 hql 延迟加载一对一的组合

如果实体 A 与实体 B 具有双向一对一或零对一映射。

映射如下:

当我为 EntityA 执行 hql 查询(或者更确切地说是命名的 hql 查询)时,hibernate 会急切地使用单独的 select 语句加载 EntityA#propertyB。

我的问题是,如果我的 hql 返回 1000 个 EntityA(都有各自的 EntityB),hibernate 将执行 n+1 个查询(第一个查询是 EntityA 返回 1000 个结果,而 n 个查询将来自 EntityA# propertyB 选择延迟加载)。

但是,我不需要那些 EntityA#propertyB,这就是为什么我想延迟加载它们(不让休眠使用单独的 sql 查询)。

那可能吗?如果是,我该怎么做?

谢谢,弗兰兹

0 投票
2 回答
5966 浏览

java - 删除一对一关系

我有这些课。

表格看起来像:

一)| id_A |....其他字段...|

乙)| id_B | fk_id_A |..其他字段..|

但是,当我尝试删除 A 的一个实例时,我得到了,

org.hibernate.ObjectDeletedException: 已删除的对象将被级联重新保存:(从关联中删除已删除的对象)[B#130]

我尝试在交叉引用上设置 null :

但是仍然会抛出异常。

我所做的只是删除 A 中的一行,并将 B 的外键保留为空,但是当我重新尝试删除 B 时,得到同样的错误。

这是我的删除代码:

getSession总是返回一个有效的会话。

有什么我想念的吗?

0 投票
1 回答
879 浏览

ruby - DataMapper has_one 问题

我在 DataMapper 中关联模型时遇到问题。它真的很简单,但我能明白。

所以,我有 2 张桌子:

课程:

所以,问题是:我如何将出版商连接到书?这是一对一的关系,整个事情应该是这样的:

对不起,也许这是愚蠢的。但我只是不知道我应该使用什么样的声明。

0 投票
2 回答
442 浏览

java - @OneToOne 作为 ManyToOneType 返回

我有以下 POJO:

我正在制作一个库来检测 OneToOne 或 ManyToOne(并进行适当的操作)。它总是以多对一的形式返回。

}

这是我回来的:

在调试器中,“oneToOne”的类型是 ManyToOneType!!我做错了什么还是这是休眠缺陷?

编辑:这是 OneToOne 的工作方式。让我们创建三个 SampleBeans(SB1、SB2、SB3),如下面的评论中所述。一、POJO形式的数据:

再次以数据库形式的数据:

只要 OneToOneID 具有唯一约束,这种类型的关系会是 OneToOne 吗?是否有另一种方法来建模 OneToOne?请注意,上面的 POJO 是单向 OneToOne。这可能是问题吗?

0 投票
12 回答
123921 浏览

java - 如何使 JPA OneToOne 关系变得懒惰

在我们正在开发的这个应用程序中,我们注意到视图特别慢。我对视图进行了分析,并注意到休眠执行了一个查询,即使数据库中只有两个对象要获取,它也需要 10 秒。所有OneToManyManyToMany关系都很懒惰,所以这不是问题。在检查正在执行的实际 SQL 时,我注意到查询中有超过 80 个连接。

进一步检查该问题,我注意到该问题是由实体类的深层层次结构OneToOneManyToOne关系引起的。所以,我想,我会让他们偷懒,这应该可以解决问题。但是注释@OneToOne(fetch=FetchType.LAZY)或注释@ManyToOne(fetch=FetchType.LAZY)似乎不起作用。要么我得到一个异常,要么它们实际上并没有被代理对象替换,因此变得懒惰。

任何想法我将如何让它工作?请注意,我不使用persistence.xml来定义关系或配置细节,一切都是在 java 代码中完成的。

0 投票
2 回答
507 浏览

nhibernate - 针对特定场景(一对多/一对一)正确的 NHibernate 映射

我有以下结构:

被翻译成以下


现在我想在历史记录中添加一个日期,创建以下类结构:

并保持数据库模式几乎不变

我想映射ReadUserHistory,问题是:

  1. 我应该id在映射中使用Read什么?UserHistory主键是(UserId, BookId). 我需要一个idNH 才能工作吗?
  2. UserHistory -> Book似乎是一个案例one-to-one。在这种情况下如何指定BookId列名UserHistory?我没有看到列属性one-to-one(我有理由明确列名)。
0 投票
1 回答
1973 浏览

hibernate - Hibernate 子类一对一映射

我有一个复杂的映射,我认为它应该可以工作。但是为什么编译后,类 Ad 列似乎不存在?

0 投票
1 回答
1791 浏览

nhibernate - Castle ActiveRecord:一对一

在玩城堡 activerecord 中的一对一关联时,我偶然发现了以下问题:

我正在尝试建模一对一的关系(在这种情况下是用户-用户配置文件)。我已经了解到这可能不是最佳实践,但让我们暂时忽略这一点(我仍在尝试了解发生了什么)。

我希望以下代码可以使用配置文件保存用户,在数据库中产生相同的 Id:

然而,实际结果是两个对象都使用不同的密钥保存。我错过了什么吗?