jpa jql 时间范围查询_Spring技术内幕之Spring Data JPA-查询方式

9e8397bcec7150fc50727c069b6b0be3.png

import java.util.List;

import java.util.concurrent.Future;

import org.springframework.data.jpa.repository.Modifying;

import org.springframework.data.jpa.repository.Query;

import org.springframework.data.repository.CrudRepository;

import org.springframework.data.repository.query.Param;

import org.springframework.scheduling.annotation.Async;

import org.springframework.transaction.annotation.Transactional;

import com.my.domain.User;

/**

* 用户DAO 不需要添加@Repository注解

* Spring会自动为我们继承CrudRepository接口的接口创建实现类

* @author WANBGBOWE

*

*/

public interface UserRepository extends CrudRepository<User, Integer> {

//使用命名规范查询:fin 、findBy、read等

public User findByName(String name);

public List<User> findByNameAndAge(String name,String age);

//小于 生成的JQL:where age<?1

public List<User> findByAgeLessThan(String age);

//大于 生成的JQL:where age>?1

public List<User> findByAgeGreaterThan(String age);

//is null 生成的JQL:where age is null

public List<User> findByAgeIsNull(String age);

//like 生成的JQL:where age like ?1

public List<User> findByAgeLike(String age);

//使用@Query查询

@Query("select u from User u")

public List<User> getUser();

//更新第一种方式:命名化参数

@Transactional

@Modifying//修改标识,必须写

@Query("update User u set u.name=:name where u.age =:age ")

public int updateUserByAge(@Param("name")String name,@Param("age")String age);

//更新第二种方式:占位符

@Transactional //必须加事务,或者在调用的地方,否则不能正常执行

@Modifying//修改标识,必须写

@Query("update User u set u.name=?1,u.sex=?2 where u.age =?3 ")

public int updateUserByAge(String name,String sex ,String age);

//使用本地化查询 不支持翻页和动态的排序

@Modifying

@Query(value="select u.* from user u where u.name like %?1",nativeQuery=true)

public List<User> selctUserByNative(String name);

//异步的方法 返回的是单一的对象

@Async

public Future<User> findByAge(String age);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值