问题标签 [hbm]

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 回答
1074 浏览

c# - 在 DB 中使用“newsequentialid”时的休眠身份映射

我正在使用 NHibernate 将我的对象映射到数据库。其中一个对象称为“附件”。它的 ID 是使用 MS SQL server 2008 中的“newsequentialid”(作为默认值或绑定)生成的,用于为 id 列创建 Guid。

现在我想要的是,当插入新的附件时,NHibernate 将允许 SQL Server 使用 newsequentialid 创建 Guid。事情是我在尝试保存未设置 id 的新附件时不断收到异常“空标识符”(Guid.Empty)

这是我的 HBM 文件:

如您所见,ID 使用生成器类设置为本机。

感谢您提前提供的所有帮助!:)

0 投票
1 回答
109 浏览

xml - hibernate - 共享映射 xml 文件

有没有办法为多个表共享映射文件。

每个休眠 pojo 都有一个整数 id 字段,我将其移入超类。我也有多个彼此非常相似的表。所以我也为它们创建了超类。

有没有办法将映射文件相互包含或共享映射文件?

0 投票
1 回答
1259 浏览

database - Hibernate hbm 多对多映射

我正在尝试在 2 个对象之间创建一对多映射(使用 Java)。我能够将对象保存在数据库中,但不能保存它们的关系。我有一个名为“AuthorizationPrincipal”的类,它包含一组“权限”

我通过一些教程和示例提出了“set”标签,但它仍然不会保存在数据库中。

0 投票
1 回答
141 浏览

hibernate - 正确的休眠映射

我有五个表和它们各自的列

大学

研究所

  • id_institute (pk)
  • id_country (pk) ---- FK ---- country.id_country
  • id_univ
  • id_address FK ---- update.id_update

地址

国家

更新

这些是 hbm 映射

由于存在外键关系,有人可以指导我使用休眠映射。我无法获得正确的映射。

0 投票
1 回答
792 浏览

java - Hibernate:在双向有序树中打乱子节点

我有一个基本的树结构,由一个简单的Node类组成,双向链接到它的单亲(根节点可以为空)和一个有序的子列表:

我使用休眠将其映射到以下简单的数据库表:

使用以下.hbm休眠映射文件:

但是,当我尝试使用以下代码在一个父级中打乱元素顺序时:

当休眠刷新事务时出现异常:(org.hibernate.exception.ConstraintViolationException ... set parent=null, xorder=null where parent='1' and xid='2'):基本上更新尝试设置xordernull,这显然是数据库模式禁止的。

我在 hbm 映射上尝试了许多组合,但没有成功。当我设置<list>为休眠时inverse="true"不做任何更新,设置元素也无济于事。insert="false" update="false"<many-to-one>

我可能在这里错过了一些东西,无论是在hbm映射中还是在我的代码中,我的感觉是它应该很明显......知道吗?

0 投票
1 回答
1455 浏览

nhibernate - 使用 nhibernate hbm 映射继承的类

我有同一张桌子的两个班级。

一个类“Entity”包含来自表 ENTITY 和派生类的属性 x、y、z,“ExtendedEntity”包含更多属性(集合 - 与其他表的关系)。

我想映射它们,但我找不到不使用鉴别​​器来映射子类的方法(我不需要鉴别器,有时我想选择实体对象,有时是扩展实体)。有人知道吗?(我试图通过复制实体映射并添加新属性来映射扩展实体,但现在当我想要获取实体对象时,它给我带来了扩展实体)。

谢谢!

0 投票
1 回答
478 浏览

spring - 避免自动加载 hbm 文件

我有两个数据库(Oracle 和 SqlServer),并且两者都有相同的表(Province)。我正在将 JPA 与 Hibernate 一起使用,并且需要对这些数据库中的任何一个执行操作。

我为每个表都有一个 hbm 映射文件,但它们都引用同一个类(Province.java)。我已经配置了 hibernate.Oracle.cfg.xml 和 hibernate.SqlServer.cfg.xml 以便为每个 DB 适当地声明映射。

我也在使用Spring。

这是我的问题。当应用程序加载(实际上是 JUnit)时,它会尝试加载两个抛出 DuplicateMappingException 的 hbm 文件,因为 Province.java 是两次。此外,如果我只保留一个 hbm 文件和一个休眠配置文件,它仍然会抛出 DuplicateMappingException;但是如果我从休眠配置文件中删除映射,那么它就可以工作(但我不想要这个)。这意味着 hbm 文件会自动加载,然后由于在配置文件中声明而再次加载。

有没有办法可以避免自动加载 hbm 文件?

0 投票
1 回答
178 浏览

hibernate - 更新多对多的属性

我在表StudentCourse之间存在多对多关联,它们通过StudentCourse连接。 StudentCourse有一个名为Grade的额外属性。为了让学生访问特定课程的成绩,我在Student.hbm.xml中编写了以下映射:

获取数据时,一切似乎都很棒。但是,当尝试更新成绩时,我得到一个违反唯一约束的异常,因为 hibernate 没有更新行,而是尝试插入具有相同 studentId 和 courseId(定义为唯一)的新行。

所以我的问题是:我如何让休眠通过 studentId 和 courseId 更新地图?

StudentCourse.hbm.xml看起来像这样:

任何帮助都会得到帮助。

0 投票
1 回答
373 浏览

c# - 如何解决映射中的循环依赖关系?

我有 2 个具有循环依赖关系的表。ATitleElements,然后每个都Element指向Title路径中的下一个。

但是,当我调用BuildSessionFactory()我的实例时,NHibernate.Cfg.Configuration我收到以下异常:

来自表 Element 的关联引用了一个未映射的类:ElementDAO

我相信这是循环依赖的结果(它不能首先映射Title,因为它引用了Element,并且它不能在不知道Title 的情况下映射Element)。

问题: 如何组合两个映射以解决循环依赖关系?

相关数据(和代码片段)如下:

标题

  • ID(主键)
  • 姓名

元素

  • id_Title(外键)
  • 姓名
  • id_Title_Child(外键)

它们代表如下数据结构: 图表显示表的关系

我的代码:

标题DAO:

TitleDAO 映射:

元素道:

ElementDAO 映射:

0 投票
1 回答
1347 浏览

java - 级联无法在休眠状态下正常工作

在下面给出的代码中,cascade="save-update" 用于与 Student 类关联的 Course 类(包)。

学生班级是-->

课程类是-->

学生的 hbm 文件是-->

我正在执行的交易很简单-->

现在,根据代码,课程表应该包含一个名为“STUDENT_ID”的列,其中包含课程表中每个条目的关联学生的主键。但是“STUDENT_ID”列没有显示任何数据(全部为空插入的值)。

查询顺序是-->

为什么课程表中的列显示 NULL 值,而不是保存学生的 id?