问题标签 [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.
nhibernate - NHibernate 单向一对一映射问题
我正在尝试使用 NHibernate 创建单向一对一关系。
示例:客户下达订单。
在这里,OrderN.Customer-field 旨在将 Customer.ID 存储为 FK。并且该字段没有任何唯一约束。
(OrderN 表被赋予这样的名称以避免 SQL 关键字冲突。)
问题是,在执行此 c# 代码后,OrderN.Customer-field 正在存储一个空值。
但它应该存储客户的 ID。即1。
如果我添加<property name="Customer" column="Customer" />
OrderN.hbm.xml,则会引发异常:
如何解决这个问题呢?
可能不是一对一的关系。我实际上是想了解<one-to-one />
标签是如何使用的。任何人都可以在这方面帮助我吗?
客户.sql
客户.cs
客户.hbm.xml
OrderN.sql
OrderN.cs
OrderN.hbm.xml
主程序
tsql - 如何在 Sql Server 中使用 INFORMATION_SCHEMA 或 sys 视图识别一对一(一对一?)关系
问题域 http://www.freeimagehosting.net/uploads/6e7aa06096.png
那么问题来了。使用 TSQL 和 INFORMATION_SCHEMA 或 sys 视图,如何识别 1:0-1 关系,例如 FK_BaseTable_InheritedTable?
在一个具体示例中,假设一个简单的 DTO - FK_JoinTable_ParentTable 将呈现为 ParentTable 对象上的 JoinTable 的集合,而 FK_BaseTable_InheritedTable 将呈现为 BaseTable 对象上的 InheritedTable 对象(例如,继承是一个不好的选择,我知道,但不会回去)。
我能想到的最好的方法是一对多,与 FK_JoinTable_ParentTable 相同。我已经尝试了很多方法,包括(尝试)比较密钥并且我做不到。
这是脚本。问题是,使用 INFO_SCHEMA 或 sys 视图,将 FK_JoinTable_ParentTable 和 FK_JoinTable_Child 标识为一对多,将 FK_BaseTable_InheritedTable 标识为一对一/无。
试金石能够区分 FK_BaseTable_InheritedTable 和 FK_JoinTable_ParentTable
c# - Linq 中的一对一关联和过滤
假设我在 sql 中有两个表(Address
和Phone
),它们具有一对一的关系。我已经创建了相应的 linq to sql 类并将关联更改为OneToOne
我想通过过滤子对象来检索这两个对象。例如,我有以下查询可以正常工作:
有什么办法可以使以下工作:
上面的Phone
类构造函数初始化Number
属性。正如我所看到的,发出的查询包含一个子句,该子句通过 id(主键)过滤 Phones 表,但不包括 number 子句。
如果我Number
在 Visual Studio 中设置为主键,则它包含在 where 子句中,但搜索仍然不返回任何内容,因为 id 的参数值为 0。即使它有效,它也不是解决方案,因为它不Number
应该是主键.
java - 在 Hibernate 中映射两个表 0..n
我有一张表用户
我有第二张表 SpecialUsers。没有 UserId 在 SpecialUsers 表中可以出现两次,并且只有一小部分用户表中的用户 id 包含在 SpecialUsers 表中。
在 Hibernate 中映射用户表工作正常
但我在为 SpecialUsers 表创建映射时遇到了困难。我发现 Internet 中的所有示例(例如在 Hibernate 文档中)都没有这种类型的自引用。我尝试了这样的映射:
但得到了错误
我应该如何映射 SpecialUsers 表?我在应用程序级别需要的是包含在 SpecialUsers 表中的用户对象列表。
nhibernate - 映射表继承作为与 NHibernate 的一对一关系
我有一个数据库,该数据库在 Person 和 Address (使用人员 ID)之间建立了一对一的关系。但是,我找不到使用 NHibernate 制作地图的方法。
我的表结构如下:
我想有这样的东西作为最后一课:
我尝试了 HasOne 关系,但我无法重用 PersonId 作为地址标识符。
谢谢!
编辑:我忘了提到我正在使用 FluentNHibernate,所以流畅的映射和 XML 都可以。
ruby-on-rails - Ruby on Rails:将两个一一对应的模型绑定在一起的最佳方法
如果我有两个保证一一对应的模型,即如果创建了一个,我总是还需要另一个,如果删除了一个,我也想删除另一个,那是什么将它们联系在一起的最佳方法是什么?
我看到 has_one/belongs_to :dependent 方法负责删除,但我没有看到任何类似的方法来负责创建。
关于我可以坚持创建子模型的位置似乎有很多选择,最好的方法是什么?
hibernate - 使用 @Where 子句映射 @OneToOne
我正在尝试将实体映射如下
我可以保证如果未找到数据将只返回一个或 null,但休眠似乎忽略了我的 @Where 子句:
关于如何将@OneToOne 关系与@Where 子句映射的任何想法?
谢谢
java - 如何使用休眠将一些实体的值存储在另一个表中?
有没有一种简单的方法可以使用休眠将某些字段保存在另一个类和表中。
例如,我有一个Person
带有name
, surname
, email
, address1
, address2
, city
,country
字段的类。我希望我的课程是:
我想将地址存储在另一个表中。实现这一目标的最佳方法是什么?
编辑:我正在使用注释。它不一定是我描述的方式,我正在寻找最佳实践。
编辑2:地址的ID是什么?
PS。如果有办法使地址不可变(用作值对象)那就更好了,或者可能不是因为我从错误的角度思考了一切:)
fluent-nhibernate - Fluent NHibernate 一对一连接表
我认为这是一个适度的新手问题。我已经使用 NHibernate/FluentNHibernate 大约 6 个月了,我认为我对基础知识有相当的了解。现在我正在推动一点点。我确定这已记录在案,但我现在在 Google 上花了几个小时,还没有完全弄清楚。
我有简单的课程,称之为简单:
状态实际上被限制为一小组值之一:“ACTIVE”、“ON-HOLD”和“CLOSED”。在 DB 模式中,我有一个名为 RetrofitStatus 的简单只读表:
Simple 表上有一个外键约束,以确保 Status 处于 RetrofitStatus 中。
RetrofitStatus 表的目的是包含 SortOrder 列,以便我可以(在 SQL 中)
并将我的结果按显示顺序排序(例如,首先是所有 ACTIVE 条目,然后是 ON-HOLD 条目,然后是 CLOSED 条目,因为我按逻辑顺序排序,而不是按字母顺序或其他任何容易识别的顺序)。
我的问题是,如何在 FNH 中建模该对象和关系?我可以将 SortOrder 属性添加到我的 Simple 定义中并创建一个表示该属性的 View,但是当我尝试将新的 Simple 对象插入表中时会发生什么?显然,我不想尝试插入 SortOrder 属性。我想我需要以某种方式使用 NHib 元素,但同样,我不清楚它需要去哪里,插入时会发生什么,以及如何在 Fluent 中做到这一点?
我将尝试尝试反复试验,但我认为也许知道他们在做什么(我不知道)的人可以为我指明正确的方向并节省我一些时间。谢谢你的帮助。
sql - NHibernate - 我有很多,但我只想要一个!
我有一个用户可以有很多电子邮件。这是通过列表集合映射的(由用户上的 IEnumerable 电子邮件公开)。对于每个用户,其中一封电子邮件将是主要电子邮件(电子邮件上的“布尔 IsPrimary”属性)。
如何在没有 NHibernate 为用户加载每封电子邮件的情况下从用户那里获取主要电子邮件?
我有以下两个实体,每个实体都有一个对应的表
我可以将用户上的“电子邮件 PrimaryEmail”属性等映射到以某种方式设置了“IsPrimary = 1”的电子邮件吗?也许使用 Sql 公式?一个看法 ?一对一的关系?或其他方式?
应该可以将主电子邮件更改为其他电子邮件之一,因此我想将它们全部保存在 1 个表中,只需更改 IsPrimary 属性。
使用 Sql 公式,如果我将当前主电子邮件上的 IsPrimary 属性设置为 false,然后将 PrimaryEmail 属性设置为电子邮件,是否可以使用户上的“PrimaryEmail”属性保持最新应该是新的主电子邮件并将 IsPrimary 设置为 true ?NHibernate 会跟踪 Sql 公式加载的“旧/当前”主电子邮件的更改吗?使用 SqlFormula 时,一级缓存和二级缓存呢?
我不知道它是否可以通过使用 View 工作?然后我猜电子邮件可以像组件一样映射?从 View 加载时更新电子邮件数据时它会起作用吗?
有没有更好的办法 ?
因为我在用户和电子邮件之间有双向关系,所以在许多情况下,我当然可以查询主电子邮件,然后使用电子邮件上的“用户”属性来获取用户(而不是反过来——从用户到主要电子邮件)
希望有人能帮忙?