jpa之org.springframework.data.jpa.domain.Specification

最近生了场重病,有半年多没写博客了,经历了这么多,发现技术上不用太执著,有些东西明白大致意思就行了,没必要扣得太么细,用多少扣多少就行。人生短暂,要把时间用在更有意义上的事情上。

JPA是JAVA的一套持久层的规范,设计者通过一些接口和方法和基础类,定义了一套完成持久化数据的标准结构

 

 Specification接口主要定义了如何来构造一个查询条件

package org.springframework.data.jpa.domain;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

/**
 * Specification in the sense of Domain Driven Design.
 * 
 * @author Oliver Gierke
 * @author Thomas Darimont
 */
public interface Specification<T> {

    /**
     * Creates a WHERE clause for a query of the referenced entity in form of a {@link Predicate} for the given
     * {@link Root} and {@link CriteriaQuery}.
     * 
     * @param root  查询的业务对象
     * @param query  定义一个查询的元数据
* @
CriteriaBuilder cb 根据元数据构建出查询对象
* @returnPredicate 可以理解成是个简单或者复合的查询条件对象
*/ Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb); }

 

posted @ 2022-06-29 15:40  杭州胡欣  阅读(283)  评论(0编辑  收藏  举报