hibernate一对多中,多表中有两个字段需要引用单表的主键,如何写单方中的hbm.xml?
如科目表:Subject(一方)
subjectId
subjectName
前置科目表:PreSubject--存储学习某科目前必须先学某个科目的信息(多方)
id
subjectId(科目id,引用的科目表的id)
preSubjectId(科目的前置科目id,仍然引用的科目表的id)
前置科目映射文件:PreSubject.hbm.xml
<hibernate-mapping package="db">
<class
name="PreSubject"
table="pre_subject"
>
<id
name="id"
type="integer"
column="id"
>
<generator class="increment"/>
</id>
<many-to-one name="subject" class="db.Subject" column="subject_id"/>
<many-to-one name="preSubject" class="db.Subject" column="pre_subject_id"/>
</class>
</hibernate-mapping>
问题就在下面这个hbm文件,如何写映射中这个set呢?请指点,谢谢!
科目映射文件:Subject.hbm.xml
<hibernate-mapping package="db">
<class
name="Subject"
table="subject"
>
<id
name="id"
type="integer"
column="subject_id"
>
<generator class="increment"/>
</id>
<set
name="preSubjects"
lazy="false"
cascade = "all"
inverse="true"
>
<key column="subject_id"/>
<one-to-many class="db.PreSubject"/>
</set>
</class>
</hibernate-mapping>
分享到:
相关推荐
例如,以下配置表示一个名为`User`的类,其主键`id`由数据库自动生成(`native`策略),且有一个`username`属性: ```xml <class name="com.example.User" table="users"> ``` 开发人员可以通过查阅`...
在 Hibernate 中,`hbm.xml` 文件是用于定义对象与数据库表之间映射的元数据文件。这篇文档将深入解析 `hbm.xml` 配置的各个方面。 ### 1. `hbm.xml` 文件结构 `hbm.xml` 文件的开头通常包含 XML 声明和 DTD 引用...
在Java的持久层框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它极大地简化了数据库操作。然而,在实际开发过程中,我们可能会遇到一些问题,比如在处理`hbm.xml`文件中的中文注释时出现乱码,或者...
每个实体类对应一个`.hbm.xml`文件,其中包含了类名、属性名、字段类型、主键信息以及关联关系等配置。这些信息让Hibernate能够理解如何在数据库和Java对象之间进行自动的映射和转换。 例如,对于一个名为`User`的...
每个`.hbm.xml`文件通常对应于一个Java实体类,文件中的元素和属性详细描述了类的属性如何映射到数据库表的字段。 在`.hbm.xml`文件中,映射元素主要包括以下几部分: 1. ****:这是映射文件的根元素,表示一个...
这个"hibernate逆向生成.exe"文件可能是一个基于Windows平台的Hibernate反向工程工具,用户只需按照一定的步骤配置数据库连接信息,选择需要逆向生成的表,工具就会自动生成对应的Entity类和hbm.xml文件。...
标题中的“利用Middlegen Hibernate3生成hbm.xml配置和java类”指的是使用Middlegen工具来自动化创建Hibernate3框架所需的映射文件(hbm.xml)和对应的Java实体类。这个过程是数据库对象到Java对象(O/R Mapping)的...
在`hibernate.cfg.xml`中,我们通常不会直接写入实体类的属性映射,而是引用外部的`.hbm.xml`文件。这些映射文件详细描述了实体类和数据库表之间的关系,包括字段映射、主键生成策略等。 四、运行时加载配置 在...
例如,在学生和班级的关系中,一个班级可以有多个学生,但每个学生只能属于一个班级。以下是一些主要属性: 1. `name`: 定义了在Java对象中与关联类相关的属性名称。 2. `column`: 指定在多的一方(学生)的表中,...
Hibernate作为一款强大的Java对象关系映射框架,其核心配置文件Hibernate.cfg.xml在项目中起着至关重要的作用。这个文件主要负责定义数据源、连接池、SQL方言、日志以及实体类映射等关键设置。本文将深入探讨其中的...
标题中的“从hbm的xml文件自动生成数据库表”指的是在Java编程中,使用Hibernate框架的一个功能,通过Hibernate Mapping(hbm.xml)文件来自动创建对应的数据库表结构。Hibernate是流行的Java ORM(对象关系映射)...
- **映射文件内容**:`hbm.xml` 文件定义了实体类和数据库表之间的映射规则,包括字段映射、主键设置、关联关系等。 - **Session 对象**:代表数据库会话,用于执行 CRUD 操作。它提供了一种上下文,可以在其中加载...
在这个场景中,“hibernate使用主键关联的一对一关系”指的是通过共享主键来实现两个实体类之间的这种一对一绑定。下面我们将深入探讨这一主题。 首先,我们需要理解一对一关系的概念。在数据库中,一对一关系意味...
总结来说,xdoclet是一个强大的工具,通过在Java源代码中添加注解,可以自动为Hibernate生成所需的.hbm.xml映射文件,从而减轻开发负担,提高开发效率。同时,理解如何下载和使用xdoclet,也是提升Java开发效率的...
2. **XML映射文件**:接下来,我们需要在Hibernate的XML配置文件(如`User.hbm.xml`和`Order.hbm.xml`)中,定义这两个类的映射关系。在`Order`的映射文件中,我们将使用`<many-to-one>`标签来表示与`User`的关联。 ...
Hibernate 是一个流行的对象关系映射(ORM)工具,它提供了使用 XML 文件(hbm.xml)来配置映射关系的方式。这种方式可以将 Java 类与数据库表进行映射,使得开发者可以更方便地访问和操作数据库。 在使用 ...
2. **创建实体类映射文件**:在Hibernate中,每个数据库表对应一个Java实体类,每个实体类有一个对应的`.hbm.xml`映射文件。这些文件描述了类与表的映射关系,例如字段到列的映射、主键生成策略等。 3. **在`web....
而多对多关系是通过在两个参与实体之间创建一个额外的中间表来实现的,这个中间表通常包含两个外键,分别指向原表的主键。例如,User表和Role表通过UserRoles表进行关联,UserRoles表有User_id和Role_id字段。 在...
1. 类定义:模板会根据数据库表结构生成C#类,每个字段对应表中的一个列,包括数据类型、属性名称、访问修饰符等。 2. 属性定义:每个字段对应的类属性,包括属性名称、类型、getter和setter方法。 3. 构造函数:...