SpringDataJPA自定义的查询方法 定义规范
       And 并且
   Or     或
     Is,Equals    等于
   Between     两者之间
   LessThan      小于
   LessThanEqual   小于等于
   GreaterThan     大于
   GreaterThanEqual  大于等于
   After    之后(时间) >
  Before    之前(时间) <
  IsNull        等于Null
  IsNotNull,NotNull   不等于Null
  Like    模糊查询。查询件中需要自己加 %
  NotLike 不在模糊范围内。查询件中需要自己加 %
  StartingWith  以某开头
  EndingWith   以某结束
  Containing   包含某
  OrderBy  排序
  Not    不等于
  In     某范围内
  NotIn   某范围外
  True    真
  False    假
  IgnoreCase  忽略大小写

Repository 定义方法的时候,查询必须以 find,read,get开头,条件属性用关键字链接,条件属性首字母大写,级联查询
如果当前实体类有符合条件的属性,那么优先使用,而不使用级联属性,使用级联属性,之间用_进行连接.

如果想在@Query使用原生的sql语句,那么需要 @Query(value=("SQL语句"), nativeQuery=true

Specification<> specification = new Specification() {},一般用于组合查询,一般用它的匿名内部类.

root代表查询的实体类,query可以从中得到root对象,告诉jpa查询哪一个实体类,还可以添加查询条件,还可以结合
EntityManager对象 得到最终查询的 TypedQuery对象.

CriteriaBuilder对象 用于创建 Criteria相关对象的工厂,可以从中获取到 Predicate对象.

里面的 toPredicate 方法需要重写,返回 Predicate对象,这个对象代表一个查询条件.

JPA常用注解

@Entity 将该类标记为实体类,映射到指定的数据库的表

@Table name:数据库的表名

@Id 声明一个属性映射为数据库表的主键列,可以标记在属性上也可以标记在set方法上.

@GeneratedValue 标注主键生成策略, strategy:GenerationType.AUTO(默认自动) GenerationType.IDENTITY(数据库id自增长)

@Basic 简单的属性到表字段的映射, getXxx() 方法会默认加上这个注解

@Column name:字段名,unique:唯一约束,nullable:非空约束,length:长度

@Transient 如果一个属性不需要映射为表中的字段,name需要加这个注解,否则会默认标记为@Basic.(一般用于工具方法)

@Temporal TemporalType:TIMESTAMP(年月日时分秒) DATE(年月日)

@JoinColumn name:映射外键的字段名(映射的表直接把表的实体类作为数据类型,如 private 实体类 属性名)

@ManyToOne 单向多对一关系 fetch:FetchType.LAZY(修改关联属性加载策略为懒加载)

@OneToMany 单向一对多关系

@OneToOne 单向一对一,一对一关系时,@JoinColumn 可以加上一条 unique=true 保持唯一性

Java : JPA相关以及常用注解的更多相关文章

  1. JPA实体的常用注解

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

  2. [Java 开发利器Lombok] 常用注解演示

    在以往的对象模型编码时,我们需要写一大堆的get/set以及不同的构造函数等.Lombok为我们提供了一个非常好的插件形式. 在大多数的项目中,只需要使用到以下集中Annotation就足够了,如果需 ...

  3. Java多线程相关的常用接口

    Runnable 是一个接口,里面只声明了一个方法run();返回值为void所以无法拿到执行完的结果.只能通过共享变量或者线程通信来搞定.Future就是对具体的Runable或者Callable任 ...

  4. java深入技术九 (注解)

    java注解 (Annotation) 一般起到说明,配置的作用,在java.lang.annotation 定义,本质上没有增强java的能力 1.常用注解:@Override,强制编译器检查标注的 ...

  5. JAVA常用注解

    摘自:https://www.cnblogs.com/guobm/p/10611900.html 摘要:java引入注解后,编码节省了很多需要写代码的时间,而且精简了代码,本文主要罗列项目中常用注解. ...

  6. Java 注释类之常用元注解

    Java 注释类之常用元注解 自定义Java注释类时,我们使用方式如下:   @Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD ...

  7. [刘阳Java]_Spring常用注解介绍_第6讲

    Spring的注解是在Spring2.5的版本中引入的,目的简化XML配置.在企业开发过程中使用注解的频率非常高,但是学习注解的前提是大家一定要对Spring基于XML配置要熟悉,这是我个人建议,因为 ...

  8. Java 基础【11】@注解

    1.注解简介 JDK 1.5 中引入的 java.lang.annotation 包提供注解编程支持,可以让类在编译.类加载.运行时被读取,并执行相应的处理. 在 Java EE应用的时候,总是免不了 ...

  9. JPA相关知识

    这篇文章是摘自Patrick Linskey的一篇文章,主要是关于JPA相关内容的问答,相信JPA面试会碰到很多这里面的问题 问题:EJB专家团队是如何摆脱事务描述符的? 回答:在会话bean和消息驱 ...

随机推荐

  1. Android StickHeaderRecyclerView - 让recyclerview头部固定

    介绍在项目中有时会需要recyclerview滑动式时某个view滑出后会固定在头部显示,比较常用的比如手机联系人界面.地区选择界面等. StickHeaderRecyclerView就是实现这个功能 ...

  2. Android 马甲包制作流程

    一.马甲包的制作流程 1.配置马甲包的applicationId以及应用名称 在app的build.gradle文件中添加马甲包的配置 android { signingConfigs { confi ...

  3. java实现链表结构详细代码

    一.数据准备 1. 定义节点 2.   定义链表 1.数据部分 2.节点部分 class DATA //数据节点类型 { String key; String name; int age; } cla ...

  4. wxpython 设置鼠标样式

    鼠标指针被设置为放大镜样式.可用的鼠标指针样式有: wx.CURSOR_ARROWwx.CURSOR_RIGHT_ARROWwx.CURSOR_BLANKwx.CURSOR_BULLSEYEwx.CU ...

  5. 自动装配(AutoWire)

    根据 autowire 的配置选择装配策略 byName 选择和属性名 name 一致的 bean 进行装配: byType 根据类型选择,如果对应的类型匹配到多个bean,则会报错,如下配置: &l ...

  6. 多线程(三)~多线程中数据的可见性-volatile关键字

    我们先来看一段代码: ①.线程类,用全局布尔值控制线程是否结束,每隔1s打印一次当前线程的信息 package com.multiThread.thread; publicclassPrintStri ...

  7. day008-File文件

    1. File 文件和目录路径名的抽象表示形式. 一个File类对象就代表了一个文件或文件夹. 1.1 File类的作用 用来操作硬盘上的文件或文件夹 绝对路径:一般是以盘符开始的,比如:C:/Jav ...

  8. 一点一点学写Makefile-1

    相信很多Linux开发者 都得自己来写Makefile,刚开始学习学写这个的时候都会碰到很多困难,我之前没有自己独立完成过Makefile,都是在公司已有的模板上添加.现在突然有一个很大的想法就是从零 ...

  9. UESTC-1259 昊昊爱运动 II

    昊昊爱运动 II Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)     昊昊喜 ...

  10. 浅析内存对齐与ANSI C中struct型数据的内存布局-内存对齐规则

    这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密. 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的 ...