`
yangshen998
  • 浏览: 1302219 次
文章分类
社区版块
存档分类
最新评论

Hibernate关系映射小结

 
阅读更多

Hibernate关系映射小结

组建映射(User-Name)

关联的属性是个复杂类型的持久化类,但不是实体的即:数据库中没有表与该属性对应,但该类的属性要持久保存的。

<componentname=”name” class=”com.test.hibernate.domain.Name”>

<property name=”initial”/>

<property name=”first”/>

<property name=”last”/>

</component>

当组建的属性不能和表中的字段简单对应的时候可以选择实现:

org.hibernate.usertype.UserType或

org.hibernate.usertype.CompositeUserType

例:

User类

privateInteger id;

privateName name;

privateString birth;

getter()和setter()…

Name类(必不可少的属性,单生成一个表太浪费,所以把Name里的字段都加到User表中)

privateString firstName;

privateString lastName;

getter()和setter()…

User.hbm.xml

<classname="User" table="user">

<id name="id"column="id" unsaved-value="-1">

<generatorclass="native"/>

</id>

<component name="name">

<property name="firstName"column="first_name"/>

<property name="lastName"column="last_name"/>

</component>

<property name="birth"column="birth"/>

</class>

集合映射(set,list,array,bag,map)

<setname=”employees”>

<keycolumn=”depart_id”/>

<one-to-many class=”Employee”/>

<!--<element type=”string” column=”name”/>-->

<!—

<composite-element class=”YourClass”>

<property name=”prop1”/>

<property name=”prop2”/>

</composite>

-->

</set>

例:

<listname=”employees”>

<key column=”depart_id”/>

<!—表中有单独的整型列外表示list-index-->

<list-index column=”order_column”/>

<one-to-many class=”Employee”/>

</list>

<arrayname=”employees”>

<key column=””depart_id/>

<!—表中有单独的整型列表示list-index—>

<list-index column=”order_column”/>

<one-to-many class=”Employee”/>

</array>

<bagname=”employees” order-by=”id desc”>

<key column=”depart_id”/>

<one-to-many class=”Employee”/>

</bag>

<mapname=”employees”>

<key column=”depart_id”/>

<map_key type=”string” column=”name”/>

<one-to-many class=”Employee”/>

</map>

这些集合类都是Hibernate实现的类和JAVA中的集合类不完全一样,set,list,map分别和JAVA中的Set,List,Map接口对应,bag映

射成JAVA的List;这些集合的使用和JAVA集合中对应的接口基本一致;在JAVA的实体类中集合只能定义成接口不能定义成具体类,因为集合会在运行时被替换成Hibernate的实现。

集合的简单实用原则:大部分情况下用set,需要保证集合中的顺序用list,想用java.util.List又不需要保证顺序用bag。

分享到:
评论

相关推荐

    Hibernate映射

    hibernate 映射关系 小结

    用Hibernate映射继承关系

    ### 用Hibernate映射继承关系 #### 14.1 继承关系树的每个具体类对应一个表 在Hibernate中映射继承关系时,一种常见的策略是将继承关系树的每个具体类映射到单独的数据库表中。这种方法称为**表/类映射**(Table/...

    hibernate关系映射

    #### 七、小结 本篇文章主要介绍了 Hibernate 中关系映射的基本概念和实现方法。通过上述示例可以看出,Hibernate 提供了丰富的注解来支持不同类型的实体关系映射。理解这些关系对于有效地设计数据库模型和进行数据...

    hibernate 学习笔记小结

    ### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...

    hibernate学习小结 @爱编程

    4. **编写Hibernate映射文件**:每个需要持久化的Java类都需要有一个对应的`.hbm.xml`文件,用来描述类与数据库表之间的映射关系。 #### 四、对数据库的操作流程 1. **Configuration配置**:加载配置文件。 2. **...

    hibernate一对多关联映射学习小结

    Hibernate一对多关联映射学习小结 Hibernate是一种流行的Java持久层框架,它提供了强大的对象关系映射(ORM)功能,能够将Java对象与关系数据库中表之间建立映射关系。Hibernate的关联映射是其核心功能之一,可以将...

    关于Clob类型在Hibernate中 的应用小结

    4.1.3 **Hibernate映射文件**: 在Hibernate的XML映射文件中,你需要为这个Clob字段指定映射规则,例如: ```xml &lt;property name="summaryClob" type="org.hibernate.type.ClobType"&gt; ``` **CRUD操作**: ...

    Hibernate的框架的总结

    - **简介**:映射文件用于定义实体类与数据库表之间的映射关系,是Hibernate实现对象关系映射的核心。 - **属性详解**: - `&lt;property&gt;` 元素用于指定实体类属性与数据库表字段之间的映射关系。 - `name` 属性:...

    MAPPING Hibernate方法小结.doc

    【MAPPING Hibernate方法小结】 Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库。以下是对Hibernate中几种关键概念的详细解释: 1. **对象之间的关系**: - **...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

    hibernate小结

    ### Hibernate小结 #### 一、概述 在本篇文章中,我们将对Hibernate框架进行一个较为全面的小结。主要内容包括:Hibernate映射中的Lazy加载策略、Hibernate查询语言(HQL)的使用方法,以及一些基本配置与操作技巧...

    Struts2+Hibernate+Spring项目小结――Hibernate部分

    这里我们主要讨论SSH项目中的Hibernate部分,它是一个强大的对象关系映射(ORM)框架,使得开发者可以方便地将数据库操作与Java对象模型进行绑定。 1. 实体Bean的配置 在Spring中,配置Hibernate的SessionFactory...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    在实体类中定义Clob类型的属性,并在Hibernate映射文件中相应配置。这样可以避免一次性加载整个Clob内容到内存,从而降低内存消耗。 4.1 基本配置: 4.1.1 实体类: 在实体类中,声明一个Clob类型的属性,例如: ``...

    Hibernate 框架总结

    Hibernate是一个开源的Java框架,它为对象关系映射(Object Relational Mapping, ORM)提供了一种实现方式,允许Java程序员以面向对象的方式操作数据库。从Hibernate的核心概念、工作原理到其实现细节,Hibernate...

    hibernate 3中的缓存小结

    4. 在映射文件中使用`&lt;cache&gt;`子元素配置二级缓存,例如在`&lt;class&gt;`和`&lt;set&gt;`元素下。 通过理解Hibernate 3的缓存机制,我们可以更有效地利用缓存提高应用的性能,同时避免因不当使用导致的数据一致性问题。在实际...

    Hibernate操作Oarcle中Clob、Blob字段小结

    这篇博客文章“Hibernate操作Oracle中Clob、Blob字段小结”可能会探讨如何在Hibernate中有效地处理这两种类型的数据。 1. **Clob与Blob的理解**: - Clob:Clob是用于存储大量字符数据的类型,例如长篇文章、XML...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    2.4.3 Hibernate映射类型接口 41 2.4.4 可供扩展的接口 42 2.5 小结 43 2.6 思考题 45 第3章 第一个Hibernate应用 47 本章通过简单的helloapp应用例子,演示如何利用Hibernate来持久化Java对象。 3.1 创建...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     1.3 小结  1.4 思考题 第2章 Java对象持久化技术概述  2.1 直接通过JDBC API来持久化实体域对象  2.2 ORM简介  2.2.1 对象-关系映射的概念  2.2.2 ORM中间件的基本使用方法  2.2.3 常用的ORM中间件  2.3 ...

Global site tag (gtag.js) - Google Analytics