【Hibernate注解】

Hibernate注解不仅可以替换复杂的映射文件,甚至可以逆向生成数据库表

1、需要导入的jar包类列表

  hibernate-annotations.jar

  hibernate-commons-annotations.jar

  ejb3-persistence.jar

2、配置实体类的常用注解

  @Entity  将一个类声明为实体Bean(即一个持久化POJO类)

  @Id  声明该实体Bean的标识属性(相当于数据表的主键)

  @GeneratedValue  定义标识符的生成策略

  @Table  为实体Bean映射指定表(table)、目录(也就是数据库名)(catalog)和schema的名称。默认值:实体Bean的类名,不带包名

  @UniqueConstraint  定义表的唯一约束

  @Lob  表示属性将被持久化为Blob或者Clob类型

  @Column  将属性映射到列

  @Transient  将忽略这些字段和属性,不用持久化到数据库

3、配置对象关联关系

  @OneToOne

  @OneToMany

  @ManyToOne

  @ManyToMany

举例说明:比如年级表和学生表的一对多关系

在学生表中

  @ManyToOne(fench=FetchType.LAZY)//延迟加载

  @JoinColumn(name="GID")//声明外键,GID是数据库学生表中的某一列,表示外键关联到年级表

在年级表中

 //指定学生的关联属性,延迟加载,级联删除和级联增加 @OneToMany(mappedBy="grade",fetch="FetchType.LAZY",cascade={CasCadeType.REMOVE,CasCadeType.PERSIST})

总结:

  在“一”的一方,@ManyToOne中通过mappedBy属性指定“多”方的关联属性。在双向关联关系中,有且仅有一端作为主体端存在,主体端负责维护更新,对于不需要维护这种关系的从表则通过mappedBy属性声明,指定另一主体的关联属性,相当于inverse="true",即将控制权反转,自己甩手休息不维护关联关系

  在“多”方,通过@JoinColumn指定“多”方定义的外键字段

  fetch属性指定关联关系获取方式,即是否采用延迟加载

  cascade属性指定级联操作

    CasCadeType.REMOVE  级联删除

    CasCadeType.PERSIST  级联增加

    CasCadeType.MERGE  级联更新

    CasCadeType.REFRESH  级联刷新

    CasCadeType.ALL  包含所有级联操作

时间: 2024-10-12 02:00:32

【Hibernate注解】的相关文章

hibernate注解

慕课网:http://www.imooc.com/learn/524 一.类级别注解 简介 使用注解的目的:为了简化繁琐的ORM映射文件(*.hbm)的配置 JPA(Java Persistence API)与hibernate的关系:JPA是标准接口,hibernate是实现(hibernate的功能是jpa的超集,功能更强大) hibernate如何实现与JPA的关系:通过hibernate-annotation.hibernate-entitymanager.hibernate-core三

Hibernate学习一:Hibernate注解CascadeType

http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hibernate学习一:Hibernate注解CascadeType 博客分类: Hibernate hibernate 一.概念 现有一场景:一个管理员可以管理多个网吧,一个网吧可以被多个管理员管理.从中抽象出一个多对多的例子user-bar. 主控方user:多对多里面里面会有第三张表user_b

(十) 使用Hibernate 注解

Hibernate里有两种注解 : Hibernate 注解 JPA注解 主键生成机制 : http://www.cnblogs.com/ph123/p/5692194.html 案例一:   用注解对非复合主键的表生成配置文件 package bean; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.p

Hibernate注解总结:

Hibernate注解总结: 首先我们都知道Hibernate框架是持久层的一个框架,用于对数据的访问和操作.个人觉得其强大就在于它可以使用HQL语句来进行快速的增.删.改的操作,也可以使用Sql语句来进行数据操作,很是方便快捷,备受大型项目青睐,之前所做的都是用的MyBatis感觉比MyBatis要方便些.但是有些人会认为说开发人员理应熟练使用sql语句,对MyBatis更欢迎.智者见智仁者见仁.我就从我平时使用的注解说起吧: @id:这个想必大家都不会陌生的,在实体类中定以主键的标识. @E

关于hibernate注解的简单应用

@Override 用途:重写父类的同名方法 单元测试注解 @Test 用途:用于测试 @Before 用途:单测方法走之前执行 @After 用途:单测方法走之后执行 注解的目标:替换小配置.替换hbm文件 @Entity  :标识实体类(被持久化) @Table  :DB层表的名称 @Transient :不持久化某个属性 @Column:数据表中的字段名 @GenerateValue :主键生成策略 -----------------关联--------------------------

Hibernate注解映射联合主键的三种主要方式(转载)

转自:http://blog.csdn.net/robinpipi/article/details/7655388 联合主键用hibernate注解映射方式主要有三种:第一.将联合主键的字段单独放在一个类中,该类需要实现Java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并生成set和get方法,并将该引用注解为@Id 第二.将联合主键的字段单独放在一个类中,

【学习笔记】Hibernate 注解 (Y2-1-9)

Hibernate注解 1.什么是注解在类上或者方法上打上其他类型的类型元数据 @标志 使用过的注解: @override  方法重写 @Test Junit 单元测试 @Before 单元测试 @After 单元测试 Hibernate中常用的注解 [email protected] 将一个类声明为持久化类 [email protected] 声明持久化类的标识属性 [email protected] 定义标识属性值的生成策略,默认为native [email protected] 将属性映射

hibernate注解解析

最近学习hibernate注解形式配置POJO类,将注解的解析记下来,以备以后使用. 例1. @Entity@Table(name="user")  public class Flight implements Serializable {    Long id; @Id @GeneratedValue(generator="generator") @GenericGenerator(name="generator", strategy = &q

SHOP++ 中Hibernate 注解 用法

最近接触到一款JAVA开源软件(shop++)这是一款电商软件.然后看了这款软件的源代码,发现真的很强大.框架采用的是spring mvc + hibernate + freemarker ,代码结构层次分明,代码封装和重用性也很高.非常适合二次开发.其次重点说说hibernate 注解吧 数据库表采用的是hibernate注解映射的方式.然后略微研究了下,分享一下自己的见解. @Entity说明此类是一个实体映射 @Tabletable用来定义entity主表的name,cataloh,sch