SpringBoot+JPA 运用生成的查询语句做复杂查询的方法

项目中碰到了一个比较棘手的查询操作,封装的各种方法都用不上,于是只能动态生成查询语句后再做查询,结果生成的是sql语句在Repository层面方法中作为形参传入,结果发现根本不行,于是改用生成JPQL语句用EntityManager创建Query进行查询,方法如下:

首先注入

@PersistenceContext
private EntityManager entityManager;

导包如下

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

然后

Query query2 = entityManager.createQuery(sql2);//sql2为动态生成的查询语句,一定要遵循JPQL规范,不是sql
query2.setFirstResult(start);//分页用起点
query2.setMaxResults(size);//分页用记录条数
List<Object[]> lists2 = query2.getResultList();//查询结果输出

这样查询就完成了,如果遇到返回前台的值没有key,或者其他问题,可以看我上篇文章!

猜你喜欢

转载自blog.csdn.net/yssa1125001/article/details/87084507