`
martinyuan
  • 浏览: 59027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

hibernate annotations

阅读更多
一、 环境搭建和基本映射 1) 添加Annotation包: hibernate-annotations.jar,ejb3-persistence.jar,hibernate-commons-annotations.jar 2) 在实体类中尽量使用JPA的标准注解来进行对象关系映射。注解可以添加在属性上,也可以添加在getXxx()方法之上。 a) @Entity 映射一个实体类 @Table(name="表名") 指定关联的表 b) @Id 映射OID c) @GeneratedValue(strategy=生成策略) 指定OID的生成策略。 它的默认值是GenerationType.AUTO,相当于xml时的native。 如果不使用此注解定义Id,就将使用手动指定OID值。JPA注解默认没提供uuid方式。 d) @Version 映射版本号属性(乐观锁) e) @Column(name="列名",nullable=true,unique=true) 指定属性对应列的信息。 f) @Temporal(TemporalType.TIMESTAMP) 指定日期时间的类型。(TIMESTAMP,DATE,TIME) g) 简单属性可以不用注解。默认就是@Basic h) @Transient 指定属性不需要持久化. i) 复杂属性:关联,继承,组件,联合主键. 3) 在Hibernate全局配置文件中使用声明映射类的方式:<mapping class="实体类的全限定名"></mapping> 4) 使用Annotation来映射对象关系时,加载Hibernate全局配置文件要使用AnnotationConfiguration类,如下代码: SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory(); 5) 持久化操作与之前没有区别。 二、映射关联关系 1. 映射多对一 1) @ManyToOne 2) 指定关联列@JoinColumn(name="xxx_id") 2. 映射一对多 1) @OneToMany 默认会使用连接表做一对多的关联。 2) 添加@JoinColumn(name="xxx_id")后,就会使用外键关联,而不使用连接表了。 3. 映射双向一对多 1) 在多端: @ManyToOne @JoinColumn(name="外键名") 2) 在一端:(一对多关联,把关系维护权交给多端更有效率) @OneToMany(mappedBy="多端的关联属性名") @JoinColumn(name="外键名") 4. mappedBy属性:用在双向关联中,把关系的维护权反转。跟hibernate XML映射中的property-ref一样。 5. cascade属性: 指定级联操作的行为(可多选) CascadeType.PERSIST :调用JPA规范中的persist(),不适用于Hibernate的save()方法 CascadeType.MERGE:调用JPA规范中merge()时,不适用于Hibernate的update()方法 CascadeType.REMOVE:调用JPA规范中的remove()时,适用于Hibernate的delete()方法 CascadeType.REFRESH:调用JPA规范中的refresh()时,适用于Hibernate的flush()方法 CascadeType.ALL:JPA规范中的所有持久化方法。适用于Hibernate中的所有持久化方法 6. cascade属性和mappedBy用在一起时,一定要通过调用双方的set方法来建立关系。 7. 双向一对一 1) 基于外键 a) 在主控方:@OneToOne b) 在被控方:@OneToOne(mappedBy="对方的关联属性名") 2) 基于主键: JPA标准中没有提供共享主键生成问题的标准方法,需要使用Hibernate的扩展。 a) 在主控方:Car @Id @GeneratedValue(generator="my-uuid") @org.hibernate.annotations.GenericGenerator(name="my-uuid", strategy="uuid") private String id; @OneToOne(cascade={CascadeType.ALL}) @PrimaryKeyJoinColumn private Brand brand; b) 在被控方:Brand @Id @GeneratedValue(generator="myFG") @org.hibernate.annotations.GenericGenerator(name="myFG", strategy="foreign",parameters=@Parameter(name="property",value="car")) private String id; @OneToOne(mappedBy="brand") private Car car; 8. 双向多对多:最好由某一端来维护这个关系会更有效率.示例:学生与课程的多对多 1) 在主控方: @ManyToMany @JoinTable(name="student_course", joinColumns={@JoinColumn(name="student_id")}, inverseJoinColumns={@JoinColumn(name="course_id")}) private Set<course> courseSet = new HashSet<course>(); 2) 在被控方: @ManyToMany(mappedBy="courseSet") private Set<student> stus = new HashSet<student>(); 3) 很多情况都需要把双向多对多拆成两个一对多: 1--&gt;*</student></student></course></course>
分享到:
评论

相关推荐

    Hibernate Annotations 中文文档

    Hibernate Annotations API 中文文档 前言 1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 2.2. 用EJB3注解进行映射 2.2.1. 声明实体bean 2.2.1.1. 定义表(Table) 2.2.1.2. 乐观...

    hibernate annotations3.4.0 GA.rar

    现在已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的映射方式将代替hibernate 的*....

    hibernate-annotations-3.4.0.GA

    《Hibernate Annotations 3.4.0.GA:深入理解与应用》 Hibernate是Java领域中广泛应用的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。而Hibernate ...

    webwork hibernate annotations 三合一中文开发文档

    webwork2.1.7 中文开发文档 Hibernate Annotations参考文档-3.20中文开发文档 Hibernate_3.2.0_Reference_zh_CN中文开发文档

    HibernateAnnotations 中文版

    **Hibernate Annotations 中文版** Hibernate 是一款开源的Java框架,用于简化对象关系映射(ORM)的任务,使得Java开发者能够将数据库操作与业务逻辑更好地解耦。Hibernate Annotations 是 Hibernate 的一个重要...

    hibernate annotations 中文参考手册

    ### Hibernate Annotations 中文参考手册概览 #### 版本说明 根据提供的信息,这份文档的版本为3.2.0CR1。此版本标志着Hibernate框架中的一个特定阶段,特别是关于如何利用注解(Annotations)来简化Java对象与...

    hibernate annotations 3.4.0.GA API

    《Hibernate Annotations 3.4.0.GA API详解》 Hibernate是Java开发中广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作,将数据库操作与业务逻辑解耦。Hibernate Annotations是Hibernate框架的一个重要...

    Hibernate Annotations Reference 中文参考手册HTML版

    **Hibernate Annotations 参考手册中文版** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来处理数据库操作。Hibernate Annotations 是 Hibernate 的一个重要组成部分,...

    hibernate annotations 中文文档

    《Hibernate Annotations 中文文档》是针对Hibernate框架注解配置的详细指南,旨在帮助开发者更深入地理解和使用Hibernate的注解功能。Hibernate是一个流行的Java对象关系映射(ORM)框架,它允许开发人员将数据库...

    hibernate 和hibernate_annotations(中文API).pdf帮助文档

    在这个“hibernate 和hibernate_annotations(中文API)帮助文档”中,我们将深入探讨Hibernate的核心概念、特性以及如何使用Hibernate Annotations进行对象的持久化。 一、Hibernate核心概念 1. 实体(Entity):在...

    hibernate-annotations-3.4.0(参考文档,doc/../index.html)

    《Hibernate Annotations 3.4.0:持久化框架的注解增强详解》 Hibernate作为Java领域最著名的对象关系映射(ORM)框架之一,极大地简化了数据库操作。在3.4.0版本中,它引入了Annotations特性,使得Java开发者能够...

    Hibernate Annotations

    Hibernate Annotations 3.5.6-Final 全英文版

    Hibernate Annotations API(English)

    Hibernate Annotations API英文版,CHM格式

    hibernate-annotations

    《Hibernate Annotations 3.4.0.GA:深入解析企业级Java开发的持久化利器》 Hibernate,作为Java领域中最著名的对象关系映射(ORM)框架之一,极大地简化了数据库与Java应用程序之间的交互。其中,Hibernate ...

    Hibernate annotations大全

    《Hibernate Annotations 全解》 Hibernate 是一个广受欢迎的Java持久化框架,它极大地简化了数据库操作,使得开发者可以专注于业务逻辑而不是繁琐的SQL语句。在Hibernate 3.2及以后的版本中,引入了Annotations...

    hibernate-annotations.jar

    《Hibernate Annotations 框架详解》 在Java领域,Hibernate是一个广泛应用的对象关系映射(ORM)框架,它极大地简化了数据库操作。而`hibernate-annotations.jar`是Hibernate框架中的一个重要组件,主要负责处理...

    Hibernate Annotations参考文档-3.20MSNzhoujianguo_leo@hotmail.com

    Hibernate Annotations参考文档-3.20MSN---zhoujianguo_leo@hotmail.com

Global site tag (gtag.js) - Google Analytics