jpa 使用

新建实体类
@Entity
public class SysAdmin extends BaseEntity{
@Id
@Column(length = 64)
private String adminId;
@Column(length = 100)
private String userName;
@Column(length = 100)
private String passWord;
@Column
private String name;
/** 部门ID /
@Column(length = 64)
private String deptId;
/
* 角色ID /
@Column(length = 64)
private String roleId;
@Column
private String email;
@Column
private String phoneNumber;
/
* 用户头像 /
@Column
private String avatar;
/
* 盐加密 /
@Column
private String salt;
/
* 帐号状态(0正常 1停用) /
@Column
private String status;
/
* 用户性别 /
@Column(length = 1)
private String sex;
/
* 最后登陆IP /
@Column
private String loginIp;
/
* 最后登陆时间 */
@Column
private Date loginDate;
。。。省略
}
新建repository继承JpaRepository和JpaSpecificationExecutor两种查询接口
JpaRepository在注解@NamedQuery查询其他统计查询时使用方便
JpaSpecificationExecutor分页查询使用比较多
@Repository
public interface SysAdminRepository extends JpaRepository<SysAdmin,String>, JpaSpecificationExecutor {
}
新建service
分页查询
public PageResult page(ConditionPage conditionPage) {
Specification specification = this.where(conditionPage);
Sort sort = Sort.by(Sort.Direction.DESC,“updateTime”);
Pageable pageable = PageRequest.of(conditionPage.getPage(),conditionPage.getSize(),sort);
Page page = repo.findAll(specification,pageable);
List list = page.get().map(sysAdmin -> {
return convertEntity(sysAdmin);
}).collect(Collectors.toList());
return new PageResultImpl(page.getNumber(),page.getSize(),list);
}
查询参数
2.0以上可以直接组装参数
2.0以下需要写Specification工厂
private Specification where(ConditionPage conditionPage){
return new Specification() {
@Override
public Predicate toPredicate(Root root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List list = new ArrayList<>();
Condition condition = conditionPage.getCondition();
if (Strings.isNotEmpty(condition.getStarTime())){
list.add(criteriaBuilder.between(root.get(“updateTime”),condition.getStarTime(),condition.getEndTime()));
}
if (Strings.isNotEmpty(condition.getName())){
list.add(criteriaBuilder.like(root.get(“name”),condition.getName()));
}
return criteriaBuilder.and(list.toArray(new Predicate[list.size()]));
}
};
}
新建controller
@RequestMapping(value = “page”,method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
public ResObject page(@RequestBody ConditionPage conditionPage){
return success(service.page(conditionPage));
}
浏览器中输入http://localhost:8081/swagger-ui.html#/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/saveUsingPOST
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值