配置文件:
用户表:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="SysUser" table="sys_user" schema="dbo">
<id name="userId" type="java.lang.String">
<column name="USER_ID" length="10" />
<generator class="assigned" />
</id>
...
<!-- 与关联表建立一对多的关系 -->
<set name="ufis" table="user_functions_info" lazy="false" inverse="true">
<key column="USER_ID" />
<one-to-many class="UserFunctionsInfo" />
</set>
</class>
</hibernate-mapping>
职能表:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="FunctionsInfo" table="functions_info" schema="dbo">
<id name="fiId" type="java.lang.String">
<column name="FI_ID" length="10" />
<generator class="assigned" />
</id>
...
</class>
</hibernate-mapping>
关联表(含其他属性):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="UserFunctionsInfo" table="user_functions_info" schema="dbo">
<composite-id name="id" class="UserFunctionsInfo">
<key-property name="userId" type="java.lang.String">
<column name="USER_ID" length="10" />
</key-property>
<key-property name="fiId" type="java.lang.String">
<column name="FI_ID" length="10" />
</key-property>
</composite-id>
<property name="upgradePlan" type="java.lang.String">
<column name="UPGRADE_PLAN" length="10" />
</property>
<property name="reachDatetime" type="java.util.Date">
<column name="REACH_DATETIME" length="23" />
</property>
<property name="traineeSituation" type="java.lang.String">
<column name="TRAINEE_SITUATION" length="8" />
</property>
</class>
</hibernate-mapping>
做法就是将多对多的关联,转换为连个与中间表一对多的关联。
分享到:
相关推荐
总结,"Hibernate基于连接表的一对多单向关联"涉及到的主要知识点包括:数据库设计的一对多关系、Hibernate的实体映射、单向关联的配置、以及如何在Java代码中操作和查询这种关联。理解并熟练应用这些知识点,对于...
在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...
本文将深入探讨“Hibernate关联表问题”,基于给出的标题和描述,我们将重点讨论Hibernate中的多对多(Many-to-Many)关联映射。 在关系型数据库中,多对多关联是最复杂的一种关系,比如用户可以有多个角色,角色也...
本示例着重于如何利用Hibernate来实现不同类型的数据库表之间的关联,包括一对一、一对多、多对一以及多对多的关系。 **一对一关系:** 一对一关联通常发生在两个表之间有唯一对应关系时,比如一个用户只有一个账号...
4. 多对多关联:两个实体类之间存在多对多关系,例如学生和课程,使用@ManyToMany注解,通常需要一个关联表来存储中间关系。 四、多表操作示例 1. 保存(Save/Update):通过Session的save()或saveOrUpdate()方法...
本主题聚焦于SSH框架中的“多对多”关联映射,这是一种数据库设计模式,允许一个实体与多个其他实体相互关联。下面将深入探讨这一关键概念及其在SSH框架下的实现。 首先,让我们理解“多对多”关联。在关系数据库中...
在Hibernate中,多对多关联通常需要一个中间表来存储两个实体的关联信息。在实体类中,这通常通过集合属性(如Set或List)和关联映射来表示。 ### 学生选课系统的核心功能 1. **用户管理**:系统需要支持用户注册、...
本文将深入探讨Hibernate的关联映射机制,包括一对一、一对多、多对一和多对多四种关联类型。 **描述:** 由于未提供具体的描述,我们只能基于通常的理解来解析关联映射的概念。关联映射是ORM的一种实现方式,通过...
为了在Hibernate中表示这种关系,我们需要创建一个中间表(也称为关联表或连接表),它通常包含两个外键,分别引用参与关联的两个表。 在Hibernate中,我们可以使用`<many-to-many>`标签来配置多对多映射。下面是一...
- 外键约束:在多对一和一对一关联中,通常由“一”端维护外键,而在多对多关联中,通常需要一个中间表来维护外键。 4. **性能优化** - 选择合适的映射策略:对于频繁查询的一对多关系,可以考虑使用集合的延迟...
在Hibernate集成的项目中,DAO层通常会包含Hibernate Session的管理,包括打开、关闭Session,以及执行SQL查询、保存、更新和删除操作。通过使用SessionFactory创建Session,然后在业务逻辑完成后关闭Session,可以...
在多对多的情况下,需要在映射文件中指定中间连接表,以及如何在中间表中映射到关联类属性。 #### 三、总结 通过上述介绍,我们可以清楚地了解到Hibernate中不同类型的关联映射及其具体的映射方式。正确理解和使用...
描述中的"包括一对一 一对多 和多对多"提到了Hibernate中三种常见的关联关系映射。一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)是实体间的关系类型,它们在数据库设计中广泛存在,并且...
5. **@JoinTable**:在多对多关系中,用于定义中间表的详细信息,包括联合主键等。 ### 集合映射的加载策略 Hibernate提供了多种加载策略,例如: - **EAGER**:集合会在主对象加载时一起加载,适合小规模数据。 ...
使用`@ManyToMany`注解,需要创建一个中间表(通常是联合主键)来存储两个实体的关联。`@JoinTable`注解用来定义中间表的详细信息。 4. **乐观锁(Optimistic Locking)**: 乐观锁是一种非阻塞的并发控制策略,...
Hibernate支持多种关联映射,包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。这些关联可以通过定义外键或使用中间表来实现,使得对象间的复杂关系得以轻松处理。 ...
项目中可能会包含专门处理多对多关系的DAO接口及其实现类,用于插入、删除、查询和更新关联关系。 4. **业务逻辑层(Service)**:服务层处理业务逻辑,调用DAO进行数据操作。在多对多关系的场景下,Service层会...
选课关系则反映了学生和课程之间的关联,通常会在数据库中有一个中间表来存储这种多对多的关系。 **Hibernate配置**: 1. **Hibernate配置文件(hibernate.cfg.xml)**:这是Hibernate的主配置文件,用于设置数据库...
本教程将基于“华南银行项目”这一实例,深入探讨Hibernate中的四种基本映射关系:一对一、一对多、多对一以及多对多。我们将从实际应用的角度出发,通过具体的代码示例来理解这些概念。 **一对一映射(One-to-One...
Hibernate提供了强大的查询API,包括基于类和属性的Criteria API和面向对象的HQL(Hibernate Query Language)。它们允许开发者以更面向对象的方式编写查询,而不是直接写SQL,增强了代码的可读性和可维护性。 7. ...