firemail

标题: Spring-data-jpa详解 全方位介绍 [打印本页]

作者: java    时间: 2018-6-5 09:26
标题: Spring-data-jpa详解 全方位介绍
https://blog.csdn.net/zombres/article/details/80403462

其中自定义sql动态查询语句
  1. public class StudentRepositoryImpl {
  2.    
  3.     @PersistenceContext
  4.     private EntityManager em;
  5.     @SuppressWarnings("unchecked")
  6.     public Page<Student> search(User user) {
  7.         String dataSql = "select t from User t where 1 = 1";
  8.         String countSql = "select count(t) from User t where 1 = 1";
  9.         
  10.         if(null != user && !StringUtils.isEmpty(user.getName())) {
  11.             dataSql += " and t.name = ?1";
  12.             countSql += " and t.name = ?1";
  13.         }
  14.         
  15.         Query dataQuery = em.createQuery(dataSql);
  16.         Query countQuery = em.createQuery(countSql);
  17.         
  18.         if(null != user && !StringUtils.isEmpty(user.getName())) {
  19.             dataQuery.setParameter(1, user.getName());
  20.             countQuery.setParameter(1, user.getName());
  21.         }long totalSize = (long) countQuery.getSingleResult();
  22.         Page<User> page = new Page();
  23.         page.setTotalSize(totalSize);
  24.         List<User> data = dataQuery.getResultList();
  25.         page.setData(data);
  26.         return page;
  27.     }
  28.    
  29. }
复制代码





欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3