SpringDataJpa第二天

jpql的查询方式:
1.jpa query language (jpa查询语言)
特点:语法或关键字和sql语句相似,查询的是类与类的属性

需要将JPQL语句配置到接口方法上
* 1.特有的查询:需要在dao接口上配置方法
* 2.在新添加的方法上,使用注解的形式配置jpql查询语句
* 3.使用@Query注解

例如:
在这里插入图片描述
@Query 使用jpql的方式查询。?1代表参数的占位符,其中1对应方法中的参数索引
可以通过使用 @Query 来执行一个更新操作,加入 @Modifying 来将该操作标识为修改查询,这样执行就是更新操作
Spring Data JPA同样也支持sql语句的查询,只需要在注解@Query加入参数NativeQuery = true

 /**
     *  方法名的约定:
     *      findBy : 查询
     *          对象中的属性名(首字母大写)
     *          含义根据属性名查询 默认情况下:使用的是=
     *
     *          2.findBy + 属性名 + "查询方式(like | isnull)"
     *              例如模糊查询:findBy + 属性名  +like
     *          3.多条件查询:
     *              findBy + 属性名 + 查询方式 + “多条件的连接符”(and | or ) + 属性名 + 查询方式
     */

在这里插入图片描述
在这里插入图片描述

2020/1/31

specification动态查询

/**
 *	JpaSpecificationExecutor中定义的方法
 **/
 public interface JpaSpecificationExecutor<T> {
   	//根据条件查询一个对象
 	T findOne(Specification<T> spec);	
   	//根据条件查询集合
 	List<T> findAll(Specification<T> spec);
   	//根据条件分页查询
 	Page<T> findAll(Specification<T> spec, Pageable pageable);
   	//排序查询查询
 	List<T> findAll(Specification<T> spec, Sort sort);
   	//统计查询
 	long count(Specification<T> spec);
}

specification接口中只有一个方法:toPredicate

//构造查询条件
    /**
    *	root	:Root接口,代表查询的根对象,可以通过root获取实体中的属性
    *	query	:代表一个顶层查询对象,用来自定义查询
    *	cb		:用来构建查询,此对象里有很多条件方法
    **/
    public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder cb);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值