`
zzhangyx
  • 浏览: 69991 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

HIBERNATE 基于中间表(中间表包含其他属性 )多对多关联查询

    博客分类:
  • JAVA
阅读更多

配置文件:

用户表:

 

<?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基于连接表的一对多单向关联"涉及到的主要知识点包括:数据库设计的一对多关系、Hibernate的实体映射、单向关联的配置、以及如何在Java代码中操作和查询这种关联。理解并熟练应用这些知识点,对于...

    基于注解的关联关系Hibernate

    在这个“基于注解的关联关系Hibernate”的主题中,我们将深入探讨如何使用Hibernate的注解来配置不同类型的关联关系,包括一对一(One-to-One)、一对多(One-to-Many)、多对一(Many-to-One)和多对多(Many-to-...

    hibernate 关联表问题

    本文将深入探讨“Hibernate关联表问题”,基于给出的标题和描述,我们将重点讨论Hibernate中的多对多(Many-to-Many)关联映射。 在关系型数据库中,多对多关联是最复杂的一种关系,比如用户可以有多个角色,角色也...

    hibernate实现数据库表的多种关系

    本示例着重于如何利用Hibernate来实现不同类型的数据库表之间的关联,包括一对一、一对多、多对一以及多对多的关系。 **一对一关系:** 一对一关联通常发生在两个表之间有唯一对应关系时,比如一个用户只有一个账号...

    用hibernate操作多表的例子

    4. 多对多关联:两个实体类之间存在多对多关系,例如学生和课程,使用@ManyToMany注解,通常需要一个关联表来存储中间关系。 四、多表操作示例 1. 保存(Save/Update):通过Session的save()或saveOrUpdate()方法...

    多对多的关联映射--基于SSH开发

    本主题聚焦于SSH框架中的“多对多”关联映射,这是一种数据库设计模式,允许一个实体与多个其他实体相互关联。下面将深入探讨这一关键概念及其在SSH框架下的实现。 首先,让我们理解“多对多”关联。在关系数据库中...

    基于Struts2和Hibernate的简单学生选课系统

    在Hibernate中,多对多关联通常需要一个中间表来存储两个实体的关联信息。在实体类中,这通常通过集合属性(如Set或List)和关联映射来表示。 ### 学生选课系统的核心功能 1. **用户管理**:系统需要支持用户注册、...

    Hibernate 关联映射

    本文将深入探讨Hibernate的关联映射机制,包括一对一、一对多、多对一和多对多四种关联类型。 **描述:** 由于未提供具体的描述,我们只能基于通常的理解来解析关联映射的概念。关联映射是ORM的一种实现方式,通过...

    Many-To-Many_Element.rar_hibernate 多对多

    为了在Hibernate中表示这种关系,我们需要创建一个中间表(也称为关联表或连接表),它通常包含两个外键,分别引用参与关联的两个表。 在Hibernate中,我们可以使用`&lt;many-to-many&gt;`标签来配置多对多映射。下面是一...

    Hibernate各种数据库关联annotatian和XML的配置集锦

    - 外键约束:在多对一和一对一关联中,通常由“一”端维护外键,而在多对多关联中,通常需要一个中间表来维护外键。 4. **性能优化** - 选择合适的映射策略:对于频繁查询的一对多关系,可以考虑使用集合的延迟...

    40-Hibernate数据关联实现〖MVSN〗_Struts + DAO + Hibernate(3)

    在Hibernate集成的项目中,DAO层通常会包含Hibernate Session的管理,包括打开、关闭Session,以及执行SQL查询、保存、更新和删除操作。通过使用SessionFactory创建Session,然后在业务逻辑完成后关闭Session,可以...

    Hibernate中的关联映射

    在多对多的情况下,需要在映射文件中指定中间连接表,以及如何在中间表中映射到关联类属性。 #### 三、总结 通过上述介绍,我们可以清楚地了解到Hibernate中不同类型的关联映射及其具体的映射方式。正确理解和使用...

    hibernate源码 直接使用

    描述中的"包括一对一 一对多 和多对多"提到了Hibernate中三种常见的关联关系映射。一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)是实体间的关系类型,它们在数据库设计中广泛存在,并且...

    Hibernate关联关系的CRUD和集合映射(annotation)

    5. **@JoinTable**:在多对多关系中,用于定义中间表的详细信息,包括联合主键等。 ### 集合映射的加载策略 Hibernate提供了多种加载策略,例如: - **EAGER**:集合会在主对象加载时一起加载,适合小规模数据。 ...

    hibernate:一对多,多对多,一对一,乐观锁,二级缓存

    使用`@ManyToMany`注解,需要创建一个中间表(通常是联合主键)来存储两个实体的关联。`@JoinTable`注解用来定义中间表的详细信息。 4. **乐观锁(Optimistic Locking)**: 乐观锁是一种非阻塞的并发控制策略,...

    hibernate-orm-master.zip

    Hibernate支持多种关联映射,包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。这些关联可以通过定义外键或使用中间表来实现,使得对象间的复杂关系得以轻松处理。 ...

    hibernate_second4项目源码

    项目中可能会包含专门处理多对多关系的DAO接口及其实现类,用于插入、删除、查询和更新关联关系。 4. **业务逻辑层(Service)**:服务层处理业务逻辑,调用DAO进行数据操作。在多对多关系的场景下,Service层会...

    基于Hibernate实现的学生选课系统

    选课关系则反映了学生和课程之间的关联,通常会在数据库中有一个中间表来存储这种多对多的关系。 **Hibernate配置**: 1. **Hibernate配置文件(hibernate.cfg.xml)**:这是Hibernate的主配置文件,用于设置数据库...

    hibernate常用一对一、一对多、多对一、多对多映射关系真实例子(华南银行项目)

    本教程将基于“华南银行项目”这一实例,深入探讨Hibernate中的四种基本映射关系:一对一、一对多、多对一以及多对多。我们将从实际应用的角度出发,通过具体的代码示例来理解这些概念。 **一对一映射(One-to-One...

    hibernate 3.3 源码

    Hibernate提供了强大的查询API,包括基于类和属性的Criteria API和面向对象的HQL(Hibernate Query Language)。它们允许开发者以更面向对象的方式编写查询,而不是直接写SQL,增强了代码的可读性和可维护性。 7. ...

Global site tag (gtag.js) - Google Analytics