(); predicates.add(builder.equal(root.get(\"userId\"), userId)); if(StringUtils.isNotEmpty(deviceWxId)){predicates.add(builder.equal(root.get(\"deviceWxId\"), deviceWxId)); }
if(StringUtils.isNotEmpty(wxName)){
predicates.add(builder.equal(root.get(\"wxName\"), wxName)); }
query.where(predicates.toArray(new Predicate[predicates.size()])); return null; }
}, pageable);
3.使⽤entityManager完全⾃定义的拼接sql
StringBuilder datasql = new StringBuilder(\"SELECT * FROM fl_handlercash a inner join (select id from fl_handlercash where user_id =\"+userId); StringBuilder countSql = new StringBuilder(\"select count(*) from fl_handlercash where user_id =\"+userId); Date startTime = null; Date endTime = null;
if (StringUtils.isNotEmpty(startTimeStr)) {
startTime = new Date(NumberUtils.toLong(startTimeStr)); endTime = new Date(NumberUtils.toLong(endTimeStr));
datasql.append(\" and createTime between '\"+DateTimeUtil.dateToStr(startTime)+\"' and '\"+DateTimeUtil.dateToStr(endTime)+\"'\"); countSql.append(\" and createTime between '\"+DateTimeUtil.dateToStr(startTime)+\"' and '\"+DateTimeUtil.dateToStr(endTime)+\"'\"); }
if (status != -1) { if (status == 0) {
datasql.append(\" and status = 0\"); countSql.append(\" and status = 0\"); } else {
datasql.append(\" and status <> 0\"); countSql.append(\" and status <> 0\"); } }
if (StringUtils.isNotEmpty(wxId)) {
datasql.append(\" and cash_wxid ='\"+ wxId+\"'\"); countSql.append(\" and cash_wxid ='\"+ wxId+\"'\"); }
if (StringUtils.isNotEmpty(deviceWxId)) {
datasql.append(\" and device_wxId ='\"+ deviceWxId+\"'\"); countSql.append(\" and device_wxId ='\"+ deviceWxId+\"'\"); }
datasql.append(\" order by id desc limit \"+(page-1)*10+\
List handlerCashes = entityManager.createNativeQuery(datasql.toString(),HandlerCash.class).getResultList(); BigInteger count = (BigInteger)entityManager.createNativeQuery(countSql.toString()).getSingleResult(); PageBean pageBean = new PageBean(page+1, count.intValue(), 0,handlerCashes);本⽂是个⼈代码总结,⽅便以后查找。如果各位有其他⽅式欢迎分享