问题标签 [hbmxml]
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 - 具有未知元素类型的休眠映射
我想知道是否可以定义一个未知(对象)元素类型的地图。
我有一个定义了以下地图的对象:
有时一个属性可以是一个String
,有时它可以是一个java.util.Date
在Hibernate中有什么优雅的方式来处理这样一个数据对象吗?
顺便说一句,我正在使用 HBM XML
谢谢!
hibernate - Hibernate 4:一个类映射两个表 - 如何在两个表上保留一个对象?
我有这个类 Person 映射两个表:Persons 和 PersonsAUD(审计):
我正在尝试将此对象保存在两个表中,如下所示:
但只插入第一行,不插入审计行;可能休眠检查该人的状态并确认已保存。
有没有机会强制休眠在两个表中保存同一个对象?
提前致谢。
java - 带有实体名称的休眠查询
我正在使用 POJO 来定义两个表(主表和备份表)。两个 XML 类都引用同一个 Java 类。
参考:将同一个 POJO 映射到 Hibernate XML 映射文件中的多个表
POJO定义:
我能够创建不同的表。并且还使用
API 我可以单独为这些表添加新记录。
检索时,我正在使用 HQL
它返回了 Table1 和 Table2 中的所有记录。如果我尝试给 Table2,则会显示错误“Table2 is not mapped”
是否有任何可以单独从表 1 和表 2 中检索记录。
java - SaveOrUpdate 跳表
休眠 V.4.1.8 最终版
春季:3.1.3 发布
场景:在客户注册过程中,用户将填写完整的来自。他可以在完成表单之前多次保存表单,然后单击提交以完成内容。只有在最终提交后,应用程序才会创建客户 ID。为了实现这个功能,我创建了 2 个基于相同 POJO 的表。参考: 将同一个 POJO 映射到多个表
问题: 将数据保存到客户表中时。hibernate 将记录插入地址表并直接插入家庭表,但忽略客户表。因此抛出异常:无法添加或更新子行:外键约束失败
请在 custDetail 对象进入备份表和客户表时查看 sql 序列。
插入备份表
插入客户表
表定义:
后桌:
保存方法:
批准客户方法
我在客户表上没有任何异常。我尝试使用 session.clear/flash/evict/merge/replicate 等分离对象,使用 DOZER 但没有进展。即使我试图删除级联选项。
我不确定哪里出了问题。请帮忙。
问候,
希里什语
c# - 一种为 NHibernate 映射 .hbm.xml 文件配置构建操作的方法?
有没有办法从 NHibernate 映射 .hbm.xml 文件本身或至少另一个配置 xml 文件中为 NHibernate 映射 .hbm.xml 文件配置构建操作?
尽管我很欣赏 Microsoft Visual Studio 2010 的许多功能,但我不喜欢通过执行以下操作手动将“嵌入式资源”设置为此 hbm.xml 文件的构建操作:
- (不喜欢手动方法)(Microsoft 支持文档)右键单击感兴趣的文件,然后选择属性。
- (不喜欢手动方法)(Microsoft 支持文档)在“属性”对话框中,找到“生成操作”属性。默认情况下,此属性设置为内容。单击该属性并将 Build Action 属性更改为 Embedded Resource。
另外,我不喜欢在 CSharp 代码中以编程方式进行操作。有没有办法从 NHibernate 映射 .hbm.xml 文件本身或至少另一个配置 xml 文件中为 NHibernate 映射 .hbm.xml 文件配置构建操作?有人可以建议我如何使用xml来做到这一点吗?
c# - 当我尝试使用 NHibernate Session 保存到包含复合键的桥表时,为什么会出现外键冲突?
我们的办公室团队正在工作和使用 .NET Framework 4 和 NHibernate 3.3.1 的 ASP.NET 项目
我有一个名为 AllResourcesInfo 的 POCO 域类(它最终映射到数据库中的 Resource 表,该表内部连接到其他一些表,但为了简单起见,假设 AllResourcesInfo 映射到 Resource 表)。
我还有一个名为 Section 的 POCO 域类(最终映射到数据库中的 Section 表)
我还有一个名为 ResourcesInSectionBridge 的 POCO 域类(它最终映射到数据库中名为 ResourcesInSectionBridge 的桥表)
正如命名约定所暗示的,ResourcesInSectionBridge 是 Resource 和 Section 之间的桥接表。
由于 ResourcesInSectionBridge 包含一个复合键,我创建了一个名为 ResourcesInSectionIdentifier 的 POCO 复合键标识符,并且还定义了一个 Equals(object obj) 方法和一个 GetHashCode 方法。
当我使用 NHibernate Session 为 ResourcesInSectionBridge 表保存一个新条目时,我收到一个错误:
异常详细信息:System.Data.SqlClient.SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_ Resources _Resou__22CA2527”冲突。冲突发生在数据库“perls”、表“dbo.Resources”、列“ResourceDatabaseID”中。该语句已终止。
AllResourcesInfo.hbm.xml 的映射如下:
Section.hbm.xml 的映射如下:
最后,我们的 ResourcesInSectionBridge.hbm.xml 映射文件如下:
最后,我们尝试在 ResourcesInSectionBridge 表中创建条目的 C# 代码如下:
当我使用 NHibernate Session 为 ResourcesInSectionBridge 表保存一个新条目时,我收到一个错误:
异常详细信息:System.Data.SqlClient.SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_ Resources _Resou__22CA2527”冲突。冲突发生在数据库“perls”、表“dbo.Resources”、列“ResourceDatabaseID”中。该语句已终止。
你能解释一下为什么会抛出这个错误吗?另外,你能否建议我如何解决这个问题?
c# - 使 NHibernate“翻译”值为 System.Guid.Empty 的 C# POCO Guid 属性保存为数据库唯一标识符字段的 NULL?
我们的办公室团队正在工作和使用 .NET Framework 4 和 NHibernate 3.3.1 的 ASP.NET 项目
我有一个名为 AllResourcesInfo 的 POCO 域类(它最终映射到数据库中的 Resource 表,该表内部连接到其他一些表,但为了简单起见,假设 AllResourcesInfo 映射到 Resource 表)。
我还有一个名为 Department 的 POCO 域类(最终映射到数据库中的 Department 表)
AllResourcesInfo 可能与部门具有多对一关系。
如果 AllResourcesInfo 的实例属于某个部门,则 AllResourcesInfo.DepartmentDatabaseID 具有有效的 DepartmentDatabaseID,它位于 Department 实体中。
但是,如果 AllResourcesInfo 的实例不属于某个部门,则 AllResourcesInfo.DepartmentDatabaseID 在数据库中具有 NULL 值。数据库。
当我使用 NHibernate 从 AllResourcesInfo 表中检索(基本上 NHibernate 对数据库进行读取)值时,NHibernate 将使用 00000000-0000-0000-0000-000000000000 值填充 AllResourcesInfo.DepartmentDatabaseID 的 C# POCO 属性(即 System.Guid .Empty value ) 如果 AllResourcesInfo 不属于某个部门
但是,当我使用 NHibernate Session 保存不属于任何部门的 AllResourcesInfo 的全新 C# POCO 实例时,我使用 00000000-0000-0000-0000-000000000000 值填充 AllResourcesInfo.DepartmentDatabaseID 的 POCO 属性(即系统.Guid.Empty value ) 但是数据库显然会抛出错误,因为数据库的 Department 表中显然不存在 Guid 值 00000000-0000-0000-0000-000000000000。
总而言之,当我们希望 NHibernate Session Save 将 uniqueidentifier 字段值保留为空时,NHibernate Session Save 无法在数据库中保存(或保留)值为 NULL 的 uniqueidentifier 字段。
有人可以告诉我我们如何确保 NHibernate“翻译”值为 System.Guid.Empty 的 C# POCO Guid 属性被保存(或保留)为 NULL 用于数据库 uniqueidentifier 字段值?
nhibernate - 带有 access="field" 映射的 Hibernate Criteria API
我在使用 Hibernate Criteria API 时遇到问题:
如果运行此语句,则会抛出 NHibernate.QueryException:
无法解析属性:名称:MyClass
在 StackTrace 中:
在 NHibernate.Persister.Entity.AbstractPropertyMapping.ToType(String propertyName)
MyClass.hbm.xml 文件具有这种方式映射的属性:
我认为问题的出现是因为 hibernate 无法访问 MyClass 的属性“名称”,因为它是映射的access="field"
,但是由于应用程序设计要求,我无法更改这种访问属性的方式。这个想法是通过使用 Criteria API 和 lambda 表达式来创建查询,以避免硬编码的字符串属性名称。
我也尝试过使用具有相同异常结果的表达式:
有人知道我如何向 Criteria API 指示 MyClass 的属性映射为access="field"
?
非常感谢帮助。
java - 休眠是否检查列的长度?
我只能访问 db 和只读访问 hbm.xml 文件。需要增加列大小。我在此表的 hbm.xml 文件中的表/列定义中看到没有属性长度。在这种情况下,应用程序是否应该使用增加的列大小?
hibernate - 在hibernate xml映射中映射没有主键的数据库视图
我创建了一个仅用于获取数据的视图(只读)
视图:Grid_View
> 我的休眠 hbm 文件
> 因为在我看来它们不是主键,所以我没有在我的映射中提到 id 字段。 但在休眠状态下,id 是必需的。
> 我的问题
如何在休眠映射文件中进行没有 id 的映射。而且它们不是具有唯一值的列,因此它们没有任何机会使它们成为键。请帮我解决这个问题