码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate 注解

时间:2017-10-04 00:58:25      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:反转   api   asi   常用   一个   any   对象关系映射   int   中间   

 

一、JPA注解的介绍

Hibernate Annotation :是使用注解代替XML映射对象关系的新方式
JPA: Java Persistence API 是EJB3.0规范中的一部分,专门描述如何处理持久化的规范

常用方式:

  ?  使用JPA的标准注解来做对象关系映射

  ?  使用Hibernate来完成持久化操作。

JPA的注解定义放置在javax.persistence包中

常用的注解有:

  ?  @Entity

  ?  @Table

  ?  @Id

  ?  @Temporal

  ?  @Basic

  ?  Column

  ?  JPA注解中乐观锁@Version

 技术分享

技术分享a

编写实体测试类:

技术分享

 

二、基于JPA注解的对象关系映射

  JPA注解中关联映射的应用:

  1、一对多(@OneToMany)

  2、一对一(@OneToOne)

  3、多对多(@ManyToMany)

 

一对多:

 类别Category和产品Product是一对多的关系。产品和类别则是多对一的关系。

先在一端既Category类下配置 一对多的注解,

技术分享

 

mappedBy表示维护关系的反转,相当于property_ref,维护关系的反转,交给另一端来维护关系。

再来看一下多端:

技术分享

//这里配置关系,并且确定关系维护端和被维护端。mappBy表示关系被维护端,只有关系端有权去更新外键。这里还有注意OneToMany默认的加载方式是赖加载。当看到设置关系中最后一个单词是Many,那么该加载默认为懒加载  

这里设置JoinColum设置了外键的名字,在这里,Product表示是关系 维护端,Category表示关系被维护端。

一对一:

  2、基于主键的一对一映射:

    不会经常用,这个意思是说,两个表中使用相同的主键,使用Hibernate自定义主键生成策略,由@GenericGenerator实现。引用myfor.

技术分享

技术分享

基于外键的一对一则相对容易些

  技术分享

技术分享

  3、多对多:

  我们以Student和Course类为例,学生和课程是多对多的关系 

 

技术分享

 

JoinTable,我们创建了一个中间表,作为两个表之间的关联。配置好Student端后,Course端配置 就很简单了,直接使用@ManyToMany就可以了。

技术分享

 

映射命名查询

  ?  NameQueries

  ?  NameQuery

技术分享

技术分享

 

Hibernate 注解

标签:反转   api   asi   常用   一个   any   对象关系映射   int   中间   

原文地址:http://www.cnblogs.com/lanzai/p/zjlovety.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!