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 SharedPreferences存储数据

    SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来 ...

  2. CSS样式编写案例

    1.制作如图三角形效果: 步骤一:将右侧盒子设置为相对定位 步骤二:在右侧盒子里面新建个子盒子,设置宽高相等,为正方形,绝对定位 步骤三:将绝对定位的盒子用CSS3旋转属性旋转 2.制定如图的序列号 ...

  3. ARM 虚拟机使用同一个公共 IP 访问公网的解决方案

    ARM 虚拟机使用同一个公共 IP 访问公网的解决方案 2017-2-21 作者 Azure 目前有两种部署模型:资源管理器 ARM 和经典部署模型 ASM.ASM 的虚拟机默认公用云服务的 VIP ...

  4. day006-多线程

    1. 线程概念 a)     什么是主线程 Java程序启动过程中自动创建的并执行main方法的线程称为主线程 主线程的执行路径: 从main方法开始到main方法结束 b)什么是子线程 除了主线程的 ...

  5. IEEP-网络设计

    IEEP-网络设计 网络设计概述 网络设计概述 1.负责把网络规划阶段获得的客户需求运用技术手段予以规范化体现 2.网络设计一般遵循模块化指导方针,分模块进行设计 3.网络设计的输出成果必须是规范的. ...

  6. May 10th 2017 Week 19th Wednesday

    Imagination is the source of creation. 想象是创作之源. Sometimes, creation and innovation are very simple, ...

  7. python入门8 输入输出

    输入 input() 输出 print() #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 输入输出 & ...

  8. 如何用python语言撸出图表系统

    公司指标图表化显示,解决目前跟踪技术指标数据的各种不方便:于是话不多说,撸起袖子就是干: 1.挖掘需求和罗列功能点: a.图表显示技术指标数据. b.根据服务名和系统名查询对应的图表. c.根据日期区 ...

  9. IOS 即时通讯的框架 配置环境

    一.了解XMPP 协议(标准)XMPP 即时通讯协议SGIP 短信网关协议 这手机发短信 移动支付和网页支付 0x23232[0,1] 0x23232 0x23232 0x23232 只有协议,必须会 ...

  10. python:常用模块二

    1,hashlib模块---摘要算法 import hashlib md5 = hashlib.md5() md5.update('how to use md5 in python hashlib?' ...