entityManager执行本地sql,预编译,自定义返回对象
jpa自定义sql
另一种方式
传集合的话还是传集合进去就可以了 ,不用分割成字符串
List roles=Lists.newArrayList(); if("1".equals(getType)){ roles=Lists.newArrayList("地市公司领导","区县公司领导"); }else if("2".equals(getType)){ roles=Lists.newArrayList("地市公司部门主任","区县公司部门主任","地市公司配电部专责","区县公司配电部专责"); }
like用法
" having GROUP_CONCAT(t.ROLE_NAME SEPARATOR ',') like :roleName";
---------------------------------------------------------------------------------------------------- map.put("roleName","%"+vo.getRoleName()+"%");
分页处理
public static <T> RestResult<List<T>> nativeQueryPage(PPage pPage, Class<T> tClass){ int index=pPage.getPage()==null||pPage.getPage()<=0?1:pPage.getPage(); int pageSize=pPage.getPageSize()==null||pPage.getPageSize()<=0?10:pPage.getPageSize(); StringUtils.isEmptyReMsg(pPage.getSql(),"sql不能为空"); EntityManager entityManager = pPage.getEntityManager(); StringUtils.isEmptyReMsg(entityManager,"entityManager不能为空"); String countsql="select count(*) from ( "+pPage.getSql()+" ) countt1"; Query nativeQuery = entityManager.createNativeQuery(pPage.getSql()); NativeQueryImplementor implementor = nativeQuery.setFirstResult((index - 1) * pageSize) .setMaxResults((index - 1) * pageSize + pageSize) .unwrap(NativeQueryImpl.class) .setResultTransformer(Transformers.aliasToBean(tClass)); Query nativeQueryCount = entityManager.createNativeQuery(countsql); Optional.ofNullable(pPage.getArgs()) .orElse(Maps.newHashMap()) .forEach((k,v)->{ implementor.setParameter(k,v); nativeQueryCount.setParameter(k,v); }); List<T> resultList = implementor.getResultList(); String singleResult = nativeQueryCount.getSingleResult().toString(); return RestResult.successData(resultList).setTotal(Long.valueOf(singleResult)); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2022-03-15 restTemplate处理请求状态非200的逻辑
2022-03-15 Please, upgrade your dependencies to the actual version of core-js.
2022-03-15 Error: Cannot find module '@vue/cli-plugin-babel'
2022-03-15 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序