问题标签 [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.
java - Hibernate JPA 一对一保存子类实体
PrimaryKeyJoinColumn
我在父端使用带注释的一对一关系。现在我想自己保存子实体。
例如,我有Employee
并且EmpInfo
作为子实体,我需要保存EmpInfo
(当然在将父实体的 id 属性设置为它之后)。但是,当使用这种安排时,我会得到下面列出的例外情况......
任何想法为什么休眠不允许这样做?更清楚地说,我的代码如下......
父实体:
子实体:
我尝试保存它的方法是...
任何指针都将不胜感激,至于如何尝试保存子实体?
mysql - 将多对多转换为一对一(mysql)
我们更改了数据库模式,并使用连接表 accounts_users 将用户/帐户之间的关系从 1-1 移动到了多对多。
所以我们有账户,用户,accounts_users(user_id和account_id)
我们的数据仍然是 1-1,我们决定后退。所以我需要 sql 向后移动:
迁移我使用:
要搬回来,我试过:
所有这些都给出了某种 sql 错误。我猜它是因为我的 sql 是模棱两可的,我需要先选择某种选择或分钟或类似的东西。
** 需要明确的是,我确定数据中仍然存在 1-1 关系,但我无法弄清楚将现有表中的数据带回原始表的 sql。我正在寻找的是一些工作 sql,它将从 accounts_users 获取数据并将 user_id 放入 account 表中。谢谢,乔尔
hibernate - Secondarytables 还是 OnetoOne 关联?
考虑以下“模型”:
我正在尝试查找/创建正确的 Hibernate 映射(使用注释),这样,使用像“来自用户”这样简单的 HQL 查询,它将生成以下 SQL:
我已经尝试了一切,从使用@Secondarytable 到@OneToOne 关联,但我无法让它工作。
我现在得到的最好结果是使用@OneToOne 关联,它生成多个 SQL 查询,其中一个用于获取 USER 中的行,而对于结果集中的每一行,一个来自 USER_EXT 的选择查询。
这是相当无效的。
任何想法 ?
java - (1+N) 选择 OnetoOne 关联
考虑以下模型:
执行时:
休眠执行
使用具有特定属性的查询有效(选择 u.firstName、u.userExt.cdpId)。
但是,由于我想要完整的用户实体(“来自用户”),因此休眠会为第一个结果行中的每个结果行生成一个选择。
我不明白,因为默认的获取策略应该是 LAZY 而不是 EAGER。强迫它懒惰并没有解决问题。
c# - 如何使用 Entity Framework 4 Code First (POCO) 声明一对一关系
如何使用 Entity Framework 4 Code First (POCO) 声明一对一关系?
我发现了这个问题(Entity Framework 4中的一对一关系),但是答案引用的文章没有用(有一行代码是1-1关系,但没有提到如何定义它)。
sql - 在 RDBMS 中,当关系是一对一的时,如果两条记录相互指向是否有帮助,或者一个指向已经足够(不需要两个都指向)?
我正在读一本书,它谈到了 a User
has some more UserDetail
,因此UserDetail
将有一个user_id
指向 Users 表的内容。我有点忘记了,在Users
表中有一个字段user_detail_id
指向 UserDetail 记录是否有帮助?
在 Ruby on Rails 中也是如此,Users
表没有user_detail_id
,但UserDetail
表有user_id
. 而User
模型用has_one :user_detail
,而UserDetail
模型用belongs_to :user
。
有点道理,如果是一对多关系,那么在“Many”一侧,我们有一个foreign_id
指向“One”一侧,但“One”一侧不需要指向“多”的一面,所以看起来一对一的也不需要指向双向,因为一侧就足够了。
python - django 一对一关系如何将名称映射到子对象?
除了文档中的一个示例之外,我找不到任何关于 django 如何准确选择可以从父对象访问子对象的名称的文档。在他们的示例中,他们执行以下操作:
因此,在他们的示例中,他们只是调用 p1.restaurant 而不明确定义该名称。Django 假定名称以小写字母开头。如果对象名称包含多个单词,例如 FancyRestaurant,会发生什么情况?
旁注:我正在尝试以这种方式扩展 User 对象。这可能是问题吗?
nhibernate - 如何在 nhibernate 中设置一对一的关系?(目前不返回异物)
我有一个用户,其中一些是员工。这是一对一的关系,并非所有用户都是员工。
当我得到一个用户时,它似乎没有带回员工信息,它只是将其标记为空。我以为我已经了解了 nhibernate,但我尝试在映射文件上使用这么多属性,但没有让它工作。关于我做错了什么的任何想法或指示?
用户等级:
用户映射:
员工等级:
员工映射:
nhibernate - 休眠继承
我有两张桌子:
- 通话记录
- crm_call_records
call_records 不知道 crm_call_records 及其对应的类存在于不同的程序集中。因此,我无法在 call_records 的映射文件中添加子类映射。
crm_call_records 有一个名为 call_record_id 的列,其中包含 call_records 中 PK 的值。
映射文件应该是什么样子?
nhibernate - NHibernate 一对一映射,非主键
无法让 NHibernate 生成正确的查询。它一直使用我为一对一关系加入的两个表的主键,我不知道如何在其中一个表中指定外键。
所以 tableA 应该使用 tableA.bID = tableB.bID 加入 tableB。如何在 tableA 的映射中指定这个?我正在使用 tableA 类从 tableA 中检索一行,从 tableB 中检索一行,因为它是真正的一对一关系。
NHibernate 使用 tableA.aID = tableB.bID 生成连接表的 sql,这是错误的。
这不起作用: