@Entity

  标注于实体类上,通常和@Table是结合使用的,代表是该类是实体类
@Table

  标注于实体类上,表示该类映射到数据库中的表,没有指定名称的话就表示与数据库中表名为该类的简单类名的表名相对应,如果是逆向生成表的话就会以简单类名作为表名

  如果指定名称,例如@Table(name="tb_user"),就表示映射到数据库中的tb_userz这个表;
@Id

  标注于属性上,通常是在get方法上,也可以在属性的声明上。

  用于表示该属性作为ID主键
@GeneratedValue

  主键生成策略,@GeneratedValue(strategy=GenerationType.AUTO)表示主键自增长由实现jpa的框架来控制,例如我们用hibernate实现的就是有hibernate来控制

  GenerationType总共有四个:

  AUTO:

  TABLE:由一个表来维护主键,这个表记录上一次生成的主键,然后+1给作为新的主键,这种方式效率比较低
  SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列
  IDENTITY:主键增长有数据来维护,可能不同数据库有不同的策略

@Column

  标注于属性上,有很多功能,例如指定长度、是否为空,列名以及对应到数据库汇中的类型等,如@Column(length,nullable,name)

  例如,我们string对应到数据库中的text就可以这样写,@Column(columnDefinition="text")

@Temporal

  指定时间类型,例如,@Temporal(TemporalType.Date)
@Enumerated(EmumType.STRING) 注解指定枚举类型

  其中,EmumTypes表示保存到数据库中是索引还是字符串

@Lob声明属性对应的数据库字段为大文本类型,可以存放大的数据(文本和字节)
@Transient不成为持久化字段及不跟数据库中的字段形成映射
@Basic(fetch=FetchType.LAZY)

  是否把数据装载到内存中延迟初始化,第一次访问的时候在加载数据,一般用在大数据存放
@Embeddable指定联合组键 和@EmbeddedId结合使用

===================================================================

以上是针对实体的注解,接下来时针对实体与实体之间关联的注解:

一对多
一般是在多的一般维护关系,也就是多的一方作为关系维护端,负责维护外键,而一的一方是不能操作外键的;
@oneToMany(cascade={CascadeType.*},fetch=FetchType.*,mappedBy="")
默认的FetchType.Lazy
mappedBy就是指关系被维护端;
多对一
@ManyToOne(cascade.CascadeType.*,optional=true|false)
@JoinColum(name="")--》维护关系(外键)
一般定义级联保存、级联查询
默认为立即加载!
optional可选?也就是是否必须存在,false就是不允许为空。

一对一
@OneToOne(mapperBy="",cascade={CascadeType.*})
随便一端都可以作为关系维护端
通过mapperBy指定为被维护端
fetch默认为立即加载
外键则在关系维护端定义

多对多
确定维护关系,都是通过中间表,这样两端就都是与中间表形成一对多!
关系被维护端:
@ManyToMany(cascade={CascadeType.*},mapperBy="itself")
关系维护端
@ManyToMany(cascade={CascadeType.*})
@JoinTable(name="",inverseJoinColums=@JoinColum(name=""),joinColum=@JoinColum(name=""))
其中,inverseJoinColums只关系被维护端的外键
joinColum指关系维护端本身的外键
总结
关系被维护端用mapperBy来定义关系
关系维护端用joinColum来指定外键名称,维护外键或者是@JoinTable通过中间表维护关系

*ToOne 默认加载为立即加载
*ToMany 默认加载方式为懒加载

JPA实体的常用注解的更多相关文章

  1. SpringDataJpa实体类常用注解

    最近公司在使用SpringDataJpa时,需要创建实体类,通过实体类来创建数据库表结构,生成数据库表. 下面我们就来看下在创建实体类时一些常用的注解吧!!! 1.实体类常用注解 @Entity 标识 ...

  2. Java : JPA相关以及常用注解

    SpringDataJPA自定义的查询方法 定义规范       And 并且 Or 或     Is,Equals 等于 Between 两者之间 LessThan 小于 LessThanEqual ...

  3. spring boot JPA中实体类常用注解

    spring boot jpa中的注解很多,参数也比较多.没必要全部记住,但是经常查看官方文档也比较麻烦,记录一下一些常用的注解.通过一些具体的例子来帮助记忆. @Entity @Table(name ...

  4. Hibernate 关于实体映射常用注解

    注解 类注解(写在类上面的) @Entity       标明实体类 @Table(name="数据库标明")      生成数据库时的表名由这个决定 @DynamicInsert ...

  5. JPA实体类中常用的注解

    这两天在看黎活明老师的JPA的讲解视频,现在只了解这么多,记录备用. import java.util.Date; import javax.persistence.Basic; import jav ...

  6. JPA常用注解

    JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.        JPA由EJB 3.0软件专家 ...

  7. JPA常用注解(转载)

    转自:http://blog.csdn.net/wanghuan203/article/details/8698102 JPA全称Java Persistence API.JPA通过JDK 5.0注解 ...

  8. JPA实体类注解、springboot测试类、lombok的使用

    前提准备: 搭建一个springboot项目,详情请参见其它博客:点击前往 1 引入相关依赖 web.mysql.jpa.lombok <?xml version="1.0" ...

  9. JPA实体类中的注解

    @Entity 标注于实体类上,通常和@Table是结合使用的,代表是该类是实体类@Table 标注于实体类上,表示该类映射到数据库中的表,没有指定名称的话就表示与数据库中表名为该类的简单类名的表名相 ...

随机推荐

  1. IDEA新建Maven项目

    Maven是什么? 当我们在开发一个项目的时候,不可避免地会使用到第三方的类库,而它们又可能依赖着另外的Jar包,又得引入其他Jar包,而且我们很容易就会引漏掉~然后就会报错,有时候报的错会让我们花掉 ...

  2. NW.js 简介与使用

    简介 (1)以网络最流行的技术编写原生应用程序的新方法 (2)基于HTML5, CSS3, JS and WebGL而编写 (3)完全支持nodejs所有api及第三方模块 (4)可以使用DOM直接调 ...

  3. html中几种常见长度单位介绍

    其实css中的长度单位一共有8个,分别是px,em,pt,ex,pc,in,mm,cm: px:像素(Pixel),相对于设备的长度单位,像素是相对于显示器屏幕分辨率而言的.譬如,WONDOWS的用户 ...

  4. 【转】sed 的参数

    一.15个参数 1.r 从文件读入 [root@watchout2 ~]# cat file12345 [root@watchout2 ~]# cat newfile abcde [root@watc ...

  5. jquery +/-小样式

    <script>部分 var num = 0; $(document).on('click','#add',function(){ _this = $(this); div = _this ...

  6. 聊聊js里面容易忽视的一些东西(1)

      JavaScript对象的创建方式 在JavaScript中,创建对象的方式包括两种:对象字面量和使用new表达式.对象字面量是一种灵活方便的书写方式,例如: 1 2 3 4 5 6 var o1 ...

  7. 史上最全的JFinal源码分析(不间断更新)

    打算 开始 写 这么 一个系列,希望 大家 喜欢,学习 本来就是 一个查漏补缺的过程,希望大家能提出建议.本篇 文章 是整个目录的向导,希望 大家 喜欢.本文 将以 包的形式跟大家做向导. Handl ...

  8. 使用zii.widgets.CDetailView显示内容

    Yii里的CDetailView可以用来显示详细内容,有时会遇到显示的html内容是被转义过的,也就是原本是要显示html样式的,结果显示出来的内容却是把html当作普通文本了. 先看一个CDetai ...

  9. php操作mongodb的常用函数

    连接mongodb: $mongoObj = new Mongo("127.0.0.1" , array( 'connect'=>true, 'persist'=>tr ...

  10. java线程池原理及实现方式

    线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程 为什么要使用线程池 1.减少在创建和销毁线程上所花的时间以及系统资源的开 ...