@Override
    public Page<vo> findApiApplyList(Pageable pageable){
        QVO vo = QVO.vo;
        QVoTmp voTmp= QVoTmp.voTmp;

        JPQLQuery<vo> query = from(vo)
                .select(Projections.fields(vo.class,
                        vo.column1,
                        vo.column2,
                        vo.column3,
                        vo.column4,
                        vo.column5,
                        ExpressionUtils.as(JPAExpressions.select(voTmp.[voTmp에서가져오려는컬럼명])
                        .from(voTmp)
                        .where(voTmp.[voTmp와vo를비교할컬럼명].eq(vo.[voTmp와vo를비교할컬럼명]))
                        , "[alias명]")))
                .orderBy(vo.[정렬할컬럼명].desc());

        return new PageImpl<>(
                getQuerydsl().applyPagination(pageable, query).fetch()
                , pageable
                , query.fetchCount()
        );
    }

 

JPA, QueryDsl로 개발을 하려고 하니 오랜만에 vo(entity .. ) 를 계속 수정해줘야 해서 너무 번거롭다.
하나 작성해놓으면 속도는 금방 붙는 거 같은데, 아직은 쿼리문 하나 쓸 때마다 검색해야 된다.

그래도 이 시간을 통해 배우는 게 있다는 생각이 드니까 재밌다는 생각도 든다.

'개발자 > JPA' 카테고리의 다른 글

[JPA/QueryDsl] insert into select  (0) 2021.08.12

JPA 로 개발을 처음 해보는데 개발하는 시간보다 검색하는 시간이 더 많이 드는 것 같다. 

검색을 한참하다가 JPA에서 insert into select 를 지원하지 않는다는 글을 보고 너무 허망했다.
더 알아보기를 포기하고 그냥 쿼리를 작성해서 처리했다.

    # Controller 
    public String insertIntoSelect()throws Exception{
       // 로그
       service.insertIntoSelect(idx);
    }
    
    #Service
    public class Service {
       @Autowired
        private Repository repository;

        public void insertIntoSelect(Long idx) throws Exception{
            repository.insertIntoSelect(idx);
        }
    }
    
    #Repository
    @Repository
    public interface Repository extends JpaRepository<vo, Long> {
        @Transactional
        @Modifying
        @Query(value = "insert into table_nm1 ([컬럼명]) " +
                "select [컬럼명] from table_nm2 where table_nm2.idx = :idx", nativeQuery = true)
        void insertIntoSelect(@Param("idx") Long idx);
    }

 

'개발자 > JPA' 카테고리의 다른 글

[JPA/QueryDsl] select문에서 subQuery 사용하기  (0) 2021.08.12

+ Recent posts