repository

PHOTO EMBED

Fri Nov 03 2023 03:46:30 GMT+0000 (Coordinated Universal Time)

Saved by @namnt

package viettel.cyberbot.demoMysql.Repository.Imp;

import org.springframework.stereotype.Repository;
import viettel.cyberbot.demoMysql.Entity.Product;
import viettel.cyberbot.demoMysql.Entity.ViettelCyberSpace;
import viettel.cyberbot.demoMysql.Entity.ViettelCyberSpaceDetails;
import viettel.cyberbot.demoMysql.Repository.ViettelCyberSpaceRepository;

import javax.persistence.*;
import javax.persistence.criteria.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@Repository
public class ViettelCyberSpaceRepositoryImp implements ViettelCyberSpaceRepository {
    @PersistenceContext
    EntityManager entityManager;

    @Override
    public Object[] getDataByCriteriaQuery(int id) {
        CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Object[]> query = criteriaBuilder.createQuery(Object[].class);
        Root<Product> productTable = query.from(Product.class);
        Root<ViettelCyberSpace> vtccTable = query.from(ViettelCyberSpace.class);
        Predicate condition = criteriaBuilder.equal(productTable.get("productId"), id);
        //table product chỉ lấy column name và table product vtcc chỉ lấy column department
        query.multiselect(productTable.get("productName"), vtccTable.get("departmentName"))
                .where(criteriaBuilder.equal(productTable.get("departmentId"), vtccTable.get("departmentId"))).where(condition);
        return entityManager.createQuery(query).getResultList().get(0);
    }

    @Override
    public List<Object> getDataByCriteriaQueryOneToOne() {
        CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Object> query = criteriaBuilder.createQuery(Object.class);
        Root<ViettelCyberSpaceDetails> vtccDetails = query.from(ViettelCyberSpaceDetails.class);
        Root<ViettelCyberSpace> vtccTable = query.from(ViettelCyberSpace.class);
        query.multiselect(vtccDetails, vtccTable)
                .where(criteriaBuilder.equal(vtccDetails.get("departmentDetailId"), vtccTable.get("departmentId")));
        List<Object> list=entityManager.createQuery(query).getResultList();
        System.out.println(list.get(1));
        return entityManager.createQuery(query).getResultList();
    }
}
content_copyCOPY