Hibernate 注解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate 注解相关的知识,希望对你有一定的参考价值。

 

一、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 注解的主要内容,如果未能解决你的问题,请参考以下文章

关于使用hibernate注解总结

[Hibernate] 注解映射例子

Hibernate多对一(注解)

Hibernate注解开发(未完待续)

Hibernate注解-类级别注解

Hibernate注解详解