package repository;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Repository;

import jakarta.persistence.EntityManager;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import pojo.Product;

@Repository
public class ProductSearchRepository {
    @Autowired
    private EntityManager entityManager;

    public List<Product> findProduct(String type, String name) {
        CriteriaBuilder cb = entityManager.getCriteriaBuilder();
        CriteriaQuery<Product> cq = cb.createQuery(Product.class);
        Root<Product> root = cq.from(Product.class);
        Predicate pType=cb.equal(root.get("type"), type);
        Predicate pName=cb.equal(root.get("name"),name);
        Predicate pAnd=cb.and(pType,pName);
        cq.where(pAnd);
        
        List<Product> list = entityManager.createQuery(cq).getResultList();
        return list;
    }
    
    public List<String> findProductDesc(String type,int start, int size,String orderColumn) {
        CriteriaBuilder cb = entityManager.getCriteriaBuilder();
        CriteriaQuery<String> cq = cb.createQuery(String.class);
        Root<Product> root = cq.from(Product.class);
        Predicate pType=cb.equal(root.get("type"), type);
        cq.where(pType);             
        cq.multiselect(root.get("prtdesc"));
    
        cq.orderBy(cb.asc(root.get(orderColumn)));
        TypedQuery typeQuery = entityManager.createQuery(cq);
        typeQuery.setFirstResult(start);
        typeQuery.setMaxResults(size);
        List<String> list=typeQuery.getResultList();

        
        return list;
    }

}
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐