java 高级查询插件_Spring Data Jpa之高级查询(jpa-spec插件)

友情链接:Spring Data Jpa的动态查询库 https://github.com/wenhao/jpa-spec

功能介绍

兼容Spring Data Jpa 和JPA2.1接口。

Equal/NotEqual/Like/NotLike/In/NotIn支持可变参数, Equal/NotEqual 支持空(Null)值。

每个条件支持关联查询。

支持自定义条件查询。

条件构建器。

支持分页和排序。

导包:

com.github.wenhao

jpa-spec

3.1.1

*

*

详细的使用文档:

思路分析:

1 用户传的数据有0-n个

2 所以要准备一个对象接收用户传过来的数据==》Query对象

3 分页的条件对我们来说也是封装到Query对象中的

Query对象(抽个父类):

public abstract classBaseQuery {private int currentPage=1;private int currentSize=10;private boolean sort = true;privateString sortByColumn;//写成抽象类,子类必须实现

public abstractSpecification getSpecification();//分页加排序

publicPageable getPageable(){

Pageable pageRequest=newPageRequest(currentPage, currentSize);if (sortByColumn!=null&&!"".equals(sortByColumn)){if(sort){

Sort sort= newSort(Sort.Direction.ASC,sortByColumn);

pageRequest= newPageRequest(currentPage, currentSize,sort);returnpageRequest;

}

Sort sort= newSort(Sort.Direction.DESC,sortByColumn);

pageRequest= newPageRequest(currentPage, currentSize,sort);returnpageRequest;

}returnpageRequest;

}//拿到排序

publicSort getSort(){if (sortByColumn!=null&&!"".equals(sortByColumn)){if(sort){

Sort sort= newSort(Sort.Direction.ASC,sortByColumn);returnsort;

}

Sort sort= newSort(Sort.Direction.DESC,sortByColumn);returnsort;

}return null;

}

提供相应的getter,setter

}

具体的query对象(以员工查询为例):

public class EmployeeQuery extendsBaseQuery{privateString username;privateString email;privateInteger age;privateLong departmentId;

@OverridepublicSpecification getSpecification() {

Specification spec = Specifications.and()

.like(StringUtils.isNotBlank(username),"username", "%"+username+"%")

.like(StringUtils.isNotBlank(email),"email", "%"+email+"%")

.ge(age!=null,"age",age)

.eq(departmentId!=null,"departmentId.id",departmentId)

.build();returnspec;

}

getter,setter

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
原创Eclipse插件: 高级搜索功能 - com.realzyc.search.jar Eclipse Plugin 插件 java 全局 搜索 + 特性: 相比与原有eclipse仅支持的在当前文档的搜索功能, 本插件支持了如下的搜索范围: - 当前文档 原有 查找/替换 已支持 - 当前选中 原有 查找/替换 已支持 - 所有打开的文档 原有 查找/替换 不支持 - 当前项目 原有 查找/替换 不支持 - 所有打开的项目 原有 查找/替换 不支持 - 整个工作空间 原有 查找/替换 不支持 仅以在“整个工作空间”搜索为例, 插件提供在整个工作空间(workspace)中的全部文档的搜索.即使项目在关闭状态, 也可以获得搜索结果. + 特性: 本搜索插件提供了“搜索全部”功能, 并将结果全部在列表中显示.用户可以全局通观搜索结果, 并任意的导航的希望的结果.(而不是像原有的功能一样逐一的导航到结果). + 其他: 插件还提供: 字体支持, 中英语言界面切换, 搜索摘要显示等特性. + 本发布包中含有的文件: com.realzyc.search_1.3.5.jar 插件最小执行文档, 不含源文件/javadoc com.realzyc.search.introduction.en.pdf 插件介绍文档, 英文 com.realzyc.search.introduction.cn.pdf 插件介绍文档, 中文 readme.txt 插件介绍摘要 + 声明: 本插件由RealZYC独立开发, 仅用于个人使用. 如果有爱好这方面插件的同志们, 请回复或发邮件联系, 也欢迎大家加入编程Q群(78728985)互相切磋 欢迎大家下载评论.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值