jpa多条件查询方法
jpa多条件查询方法
@Override
public List<ProductEntity> myEditProductList(ProductEntity product,
Page<ProductEntity> pageItems) {
//String sql = "";
Query query = null;
StringBuilder sql = new StringBuilder("select * from plug_product p where 1=1 ");
if(product.getRmaNumber()!=null&&""!=product.getRmaNumber()){
sql.append("and rma_number like :s1 ");
}
if(product.getPartner()!=null&&""!=product.getPartner()){
sql.append("and partner like :s2 ");
}
if(product.getCurrentStatus()!=-1){
sql.append("and current_status =:s3 ");
}
if(product.getWarrantyStatus()!=-1){
sql.append("and warranty_status =:s4 ");
}
if(product.getEditStatus()!=-1){
sql.append("and edit_status =:editStatus ");
}
sql.append("and engineer = :engineer and site_id = :siteId");
query = em.createNativeQuery(sql.toString(),ProductEntity.class);
if(product.getRmaNumber()!=null&&""!=product.getRmaNumber()){
query.setParameter("s1", "%"+product.getRmaNumber()+"%");
}
if(product.getPartner()!=null&&""!=product.getPartner()){
query.setParameter("s2", "%"+product.getPartner()+"%");
}
if(product.getCurrentStatus()!=-1){
query.setParameter("s3", product.getCurrentStatus());
}
if(product.getWarrantyStatus()!=-1){
query.setParameter("s4", product.getWarrantyStatus());
}
if(product.getEditStatus()!=-1){
query.setParameter("editStatus", product.getEditStatus());
}
query.setParameter("engineer", product.getEngineer());
query.setParameter("siteId", product.getSite().getId());
System.out.println("查询语句:"+sql.toString());
query.setFirstResult(pageItems.getStartIndex());
query.setMaxResults(pageItems.getPageSize());
return query.getResultList();
}
jpa多条件查询方法