`
growinglin
  • 浏览: 9115 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate映射

阅读更多
hibernate映射

集合属性大致分为二种:

单纯的集合属性,像List,Set或数组等集合属性。

              2,Map集合属性,每个属性值多有相对应的Key映射。

       集合映射属性分为以下几种:

              List:用于映射List集合属性,List是有序的,可重复的.

              Set:用于映射Set集合属性,Set是无序的,不可重复.

              Map:用于映射Map集合属性,具有键值对属性(Key ,value);

              Array:用于映射数组集合属性.为有序可重复.

               Bag:用于应映射无序集合属性,当我们用Bag作映射时,我们定义集合时,我们不应当使用具体的集合,而是用集合的父类接口:Collection.



相对几种集合的应用:

List:

     由于他是有序的集合,因此用Hibernate持久化到数据库中时,"必须增加到例表示集合的顺序"~,集合属性只能以接口形式声明,因为当Hibernate持久化某个实例时,                      Hibernate会自动把集序中的集合实现类替换成Hibernate自己的实现类。代码 如下:

                                   private int id;

                                   private int age;

                                   private String name;

                                   private List<Person> schools;

                      那么我们如何来映射集合中的元素到数据库中呢?在hibernate的映射文件中,我们可以增加对<list></list>标签来完成,实际如下:

                              <list name="schools" table="school_table">//table是我们指定的把集合元素映射到哪个表中.

                                    <key column="person_id"></key>//这里是指出主表的外键是哪个,这里我们用主键例来映射,一般开发也是这样做。(主表的外键可认为是子表的主键)

                                                                //主表与子表之间的关联就是通过外键来维持的,

                                    <list-index column="school_indext"></list-index>//用来指定集合的序列,因为list集合是有序的,这也就是我们上面提到的要必须增加的一例

                                    <element column="school" type="string" length="30"></element>//这个标签是把list里的元素一个一个放到column指定的例名下,type指定放入的类形                      </list>





Array:数组的方式与List的完全一样,只要把标签改成<array></array>就可



Set:与List,Array一样,只是Set是无序的,在<set></set>里不用indext标签就可以了.

Bag:使用bag映射集合时,对于Set集合不好用,这是唯一的要点,对于List,Array,多没有问题。

同时,不管是哪种集合,使用bag映射之后多会变为无序的集合,而集合属性对应的表没有主键.

              Map:Map不仅要映射属性值,还要映射属Key,也就是key,value多要映射。Hibername将会以外键和key例作为联合主键.

               <map name="scores">

                      <key column="student_id"></key>

                      <map-key type="string" column="subject" length="10"></map-key>//必须指明类型,用于映射Map的key

                    <element type="int" column="score" length="3" not-null="true"></element>//也要指明类型,用来映射Map的value.   

               </map>



            

映射组件属性:

              组件属性的意思是持久化类的属性不是基本数据类型,也不是String类型,而是某个组件的变量,该组件属性类型可以是自定义类型.

              然后hibernate不能直接用property映射,为了映射组件属性,hibernate提供了component无系。每个component元素映射一个组件,组件属性必须指定该属性的类形.

              Component元素中的class属性用于确定组类的类型.

              组件的一个浅显例子,一个工人,他有月薪,年薪,带薪休候,这些是就可以做一个组件放到一起。组件是一个没有ID的类。

                     <component name="pay" class="Pay">

                             <property name="monthlPay" column="month_pay"></property>

                             <property name="yearlPay" column="year_pay"></property>

                             <property name="vocationWithPay" column="vactionwith_pay"></property>

                        </component>    





集合映射组件属性:

                集合除了存放String 字符串以外,还可以存放组件类形,实际上更多情况下,集合组件存放的都是组件类型.这时我们就要用到composite-element子元

                素来映射集合元素,刚时还要class来指定元素的类型.用property来指定组件类型的子属性.

         <list name="jobHistories" table="job_table">

              <key column="worker_id"></key>

              <list-index column="job_index"></list-index>

              <composite-element  class="Job">

              <property name="position" column="position_name"></property>

               <property name="company" column="company_name"></property>

               <property name="starting" column="`starting`" type="date"></property>

                <property name="ending" column="`ending`" type="date"></property>

                 </composite-element>

            </list>     
分享到:
评论

相关推荐

    自动生成hibernate映射文件和实体类

    "自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...

    生成hibernate映射文件工具

    hibernate映射文件是Java开发中用于对象关系映射(ORM)的重要组成部分,它将数据库表与Java类之间的关系进行定义,使得开发者无需编写大量的SQL语句,就能实现对数据库的操作。`生成hibernate映射文件工具`是为了...

    java根据实体类生成Hibernate映射文件

    首先,我们需要了解Hibernate映射文件的基本结构。通常,一个映射文件以`.hbm.xml`为扩展名,它使用XML格式来描述Java类和数据库表的对应关系。映射文件包含了类名、表名、字段及其数据类型等信息。例如: ```xml ...

    hibernate映射和查询

    **hibernate映射与查询** Hibernate 是一个流行的 Java 应用程序开发框架,它提供了一个持久层解决方案,简化了数据库操作。对于初学者来说,理解 Hibernate 的映射和查询机制是至关重要的,因为它们构成了 ...

    Hibernate 映射文件自动生成

    【压缩包子文件的文件名称列表】:“hibernate映射文件自动生成.doc”很可能是这篇博文的文档形式,其中详细介绍了具体的操作步骤、使用工具或者自定义脚本,以帮助开发者理解并应用自动化的映射文件生成过程。...

    myeclipse自动生成hibernate映射文件

    Hibernate映射文件是XML格式的文件,它定义了数据库表与Java实体类之间的对应关系,包括字段映射、主键策略、关联关系等。映射文件让开发者无需编写SQL语句,就能通过Java对象进行数据库操作。 2. **MyEclipse ...

    build.xml 手写自动生成Hibernate映射文件和配置文件源代码

    build.xml 手写自动生成Hibernate映射文件和配置文件源代码

    常用 Hibernate 映射配置说明.doc

    ### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库...

    用MyEclipse自动生成hibernate映射文件和实体类

    3. **逆向工程(Hibernate Reverse Engineering)**:选中要映射的数据库表,右键选择`Hibernate Reverse Engineering`,这是MyEclipse提供的将数据库表转换为Hibernate映射文件和实体类的工具。 4. **配置生成选项...

    Hibernate映射笔记

    ### Hibernate映射笔记详解 #### Hibernate映射文件与配置关系 Hibernate映射是ORM(对象关系映射)框架中的一项关键技术,它允许开发者在数据库表和Java对象之间建立映射关系,从而简化了数据访问层的开发工作。...

    Myeclipse生成Hibernate映射文件

    而MyEclipse作为一款强大的Java集成开发环境,提供了对Hibernate的良好支持,包括自动生成Hibernate映射文件的功能。本文将详细介绍如何在MyEclipse中创建和使用Hibernate映射文件。 首先,理解Hibernate映射文件...

    Hibernate映射实例

    确保数据库与Hibernate映射文件一致,能正确地反映实体之间的关系。导入DBO到SQL Server数据库后,就可以通过Hibernate的Session接口进行CRUD(创建、读取、更新、删除)操作了。 在开发过程中,理解并熟练运用这些...

    Hibernate映射配置实例大全(详细总结)

    "Hibernate映射配置实例大全"是一个全面深入的资源,旨在帮助开发者理解和掌握如何有效地配置Hibernate以实现对象关系映射(ORM)。在这个文档中,我们将探讨各种关键的映射配置方法,以及相关的实例。 首先,我们...

    Hibernate映射树形结构

    标题“Hibernate映射树形结构”指的是如何用Hibernate来存储和操作具有层级关系的数据。 1. **单表映射策略**: Hibernate可以使用单个表来存储树形结构,通过一个自增的`id`字段以及一个表示父节点的`parent_id`...

    Hibernate映射集合属性List

    本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...

    hibernate映射文件生成数据库

    Hibernate映射文件,通常以`.hbm.xml`为扩展名,是Hibernate用来定义Java类与数据库表之间关系的配置文件。它包含了关于实体类与数据库表的字段对应、主键生成策略、关联关系等信息。通过这些映射文件,Hibernate...

    myeclipse自动生成hibernate映射文件.

    下面我们将详细介绍如何在MyEclipse中自动生成Hibernate映射文件。 首先,我们需要建立数据库连接。在MyEclipse中,可以通过`Window`菜单打开`MyEclipse Database Explorer`视图。在这里,你可以创建新的数据库连接...

Global site tag (gtag.js) - Google Analytics