`

hibernate 集合映射

阅读更多

Hibernate要求持久化集合值字段必须声明为接口。

  • List:用于映射List集合属性
  • Set:用于映射Set集合属性
  • Map:用于映射Map集合性
  • Array:用于映射数组集合属性
  • Bag:用于映射无序集合
  • idbag:用于映射无序集合,但为集合增加逻辑次序
  •  

    映射如下:
      
       <set name="setValue" table="t_setvalue">
       <!--
    添加一字段指向id -->
        <key column="setid"/>
        <element type="string" column="setvalue"/>
       </set>

     

    +-----------+--------------+------+-----+---------+-------+
    | Field     | Type         | Null | Key | Default | Extra |
    +-----------+--------------+------+-----+---------+-------+
    | set_id    | int(11)      | NO   | MUL |         |       |
    | set_value | varchar(255) | YES  |     | NULL    |       |
    +-----------+--------------+------+-----+---------+-------+

      
       <list name="listValue" table="t_listvalue">
       <!--
    添加一字段指向
    id -->
        <key column="listid"/>
       <!--
    标记list中数据的顺序
    -->
        <list-index column="listindex"/>
        <element type="string" column="listvalue"/>
       </list>
    +------------+--------------+------+-----+---------+-------+
    | Field      | Type         | Null | Key | Default | Extra |
    +------------+--------------+------+-----+---------+-------+
    | list_id    | int(11)      | NO   | PRI |         |       |
    | list_value | varchar(255) | YES  |     | NULL    |       |
    | list_index | int(11)      | NO   | PRI |         |       |
    +------------+--------------+------+-----+---------+-------+


       <array name="arrayValue" table="t_array">
       <!--
    添加一字段指向id -->
        <key column="arrayid"/>
       <!--
    标记array中数据的顺序
    -->
        <list-index column="arrayindex"/>
        <element type="string" column="arrayvalue"/>
       </array>

    +-------------+--------------+------+-----+---------+-------+
    | Field       | Type         | Null | Key | Default | Extra |
    +-------------+--------------+------+-----+---------+-------+
    | array_id    | int(11)      | NO   | PRI |         |       |
    | array_value | varchar(255) | YES  |     | NULL    |       |
    | array_index | int(11)      | NO   | PRI |         |       |
    +-------------+--------------+------+-----+---------+-------+


       <map name="mapValue" table="t_map">
        <key column="mapid"/>
        <map-key type="string" column="mapkey"/>
        <element type="string" column="mapvalue"/>
       </map>

    +-----------+--------------+------+-----+---------+-------+
    | Field     | Type         | Null | Key | Default | Extra |
    +-----------+--------------+------+-----+---------+-------+
    | map_id      | int(11)      | NO   | PRI |         |       |
    | map_value | varchar(255) | YES  |     | NULL    |       |
    | map_key   | varchar(255) | NO   | PRI |         |       |
    +-----------+--------------+------+-----+---------+-------+

     

     

    bag与ibag元素映射,具体可参考http://www.ntsky.com/docs/java/HibernateGossip/HibernateGossip/Bag.html
    bag元素既可以为List集合属性映射,也可以为Collection集合属性映射。不管是哪种集合属性,使用bag元素都将被映射成无序集合,而集合属性对应的表没有
    xml 代码

    <bag name="school" table="schools">
    <key column="pid" not-null="true"/>
    <element type="string" column="school_name"/>
    <bag>

     

     

     

    其中:<element type="string" column="mapvalue"/>可用<one-to-many class=""/>、<many -to-oneclass=""/>、<many -to-many class=""/>、<composite-element class=""/>代替,原因是在多的一方加个外键关联。

    分享到:
    评论

    相关推荐

      Hibernate集合映射与关联关系

      本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合关系"、"student与class的多对一"以及"一对多映射"的概念。 首先,让我们理解一下Hibernate中的集合映射。在关系型数据库中,一个实体...

      [原]Hibernate集合映射

      《Hibernate集合映射详解》 Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键...

      Hibernate集合映射

      **标题:Hibernate集合映射** **正文:** Hibernate作为Java领域中最流行的ORM(对象关系映射)框架之一,它的核心功能之一就是实现Java对象与数据库表之间的映射。集合映射是Hibernate中一个非常关键的概念,它...

      hibernate集合映射inverse和cascade详解.txt

      在深入探讨Hibernate集合映射中的`inverse`与`cascade`属性之前,我们首先需要理解Hibernate框架的基本概念。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用程序提供了一种将对象模型与数据库...

      hibernate集合的映射

      Hibernate集合映射是ORM的重要组成部分,它使得Java对象和数据库表之间的关系更加直观和灵活。根据实际需求选择合适的集合类型,可以有效地处理复杂的数据关系。在实际应用中,应结合业务场景、数据特性以及性能需求...

      hibernate map 集合映射

      Hibernate集合映射的基本概念 集合映射是Hibernate中一个核心的概念,它允许我们将数据库表中的多对一(OneToMany)、一对多(ManyToOne)、多对多(ManyToMany)等关系映射到Java对象的集合属性上。通过这种方式...

      hibernate set 集合映射

      ### Hibernate集合映射基础 1. **集合类型**:Hibernate支持多种集合类型映射,如Set、List、ArrayList、LinkedList、Map等。Set是最常见的集合映射类型,它不允许重复元素,与数据库中的唯一约束相对应。 2. **...

      Hibernate常见集合映射(Set,List_Array,Map,Bag)

      Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...

      JAVA培训-HIBERNATE的集合映射.doc

      ### JAVA培训-HIBERNATE的集合映射 #### 概述 本文主要聚焦于Hibernate框架下的集合映射机制,特别是针对`Set`、`List`、`Array`、`Map`、`Bag`五种集合...希望本文能帮助读者更好地理解和应用Hibernate集合映射技术。

      hibernate bag 集合映射

      标题中的“hibernate bag 集合映射”指的是Hibernate框架中的一种关系映射机制。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者将数据库表与Java类进行映射,使得在处理数据库操作时可以使用面向...

      hibernate list集合映射

      **标题:“Hibernate List集合映射”** 在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到...

      hibernate关联映射实例

      这种映射可以通过集合类型如List、Set等来表示子项的集合。 2. **多对多关联映射**: 多对多关联是两个实体之间都可以有多个匹配项的情况,比如学生和课程的关系。在Hibernate中,我们可以使用`@ManyToMany`注解来...

      Hibernate映射集合属性List

      在Java持久化框架Hibernate中,映射集合属性是常见的需求,特别是对于那些具有一对多、多对多关系的实体对象。这里的"List"是Java集合框架中的一个接口,用于存储一组有序的元素,而在Hibernate中,它常用来映射...

      hibernate映射枚举类型

      Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...

      Hibernate教程16_集合映射

      在Java的持久化框架Hibernate中,集合映射是至关重要的一个概念,它允许我们将数据库中的表与Java对象的集合属性进行关联。本教程主要讲解了如何在Hibernate中配置和使用集合映射,以便更好地理解和应用这个强大的...

      hibernate关联映射的作用和常用属性解释

      这里定义了一个名为`addresses`的集合,它映射到`person_address`表,并通过`person_id`列与`Address`类建立了一对多的关系。 此外,如果需要实现双向的一对多关系,还需要在`Address`类中添加对`Person`的引用: ...

      hibernate array 数组映射

      在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...

    Global site tag (gtag.js) - Google Analytics