일단 입력 하고 테이블을 불러오는데는 성공했습니다.

일단 baskets 테이블에서는 조회를 전부 하고있고요

이런식으로 product_id 기준으로 조인해서 데이터의 이름과 가격, 이미지 불러올겁니다 .

코드:

    //장바구니 리스트
    public List<Baskets> findAll(String userName,String status, int page, int size) {
        List<Baskets> basketsList = null;
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        try{
            CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
            CriteriaQuery<Baskets> criteriaQuery = criteriaBuilder.createQuery(Baskets.class);

            Root<Baskets> root = criteriaQuery.from(Baskets.class);
            //조인
            // Join<Baskets, Product> jointable = root.join("product", JoinType.INNER);
            // 복합키 검색 조건 생성
            Predicate compositeKeyPredicate = criteriaBuilder.equal(root.get("basketId").get("usersId"),userName );

            // 상태 검색 조건 생성
            Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), status);

            // 검색 조건 결합
            Predicate finalPredicate = criteriaBuilder.and(compositeKeyPredicate, statusPredicate);
            
            //데이터 조회
            criteriaQuery.select(root);
            criteriaQuery.where(finalPredicate);
             
            //페이지 사이즈
            TypedQuery<Baskets> typedQuery = entityManager.createQuery(criteriaQuery);
            typedQuery.setFirstResult((page - 1) * size);
            typedQuery.setMaxResults(size);
            
            basketsList = typedQuery.getResultList();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(entityManager!=null){
                entityManager.close();
            }
        }
        return basketsList;
    }

 

 

 

 

 

+ Recent posts