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 忽略大小写
如果想在 @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 保持唯一性
来源: http://www.bubuko.com/infodetail-2732243.html