JPA 2

옵셔널(optional)과 람다(lambda)를 이용하여 JpaRepository에서 예외 처리하기

spring에서 JpaRepository의 findById를 이용하면 Optional 타입으로 반환이 된다. 처음에는 불편하기만 하였으나 이제 많이 편해져서 혹시라도 아직 불편하게 사용하는 사람들을 위해서 그 방법을 공유한다. 아래 4가지의 코드는 같은 로직을 가독성이 좋게 코드를 조금씩 수정한 것이다. 가나다 많이 이상하고 불편했던 경우 Optional optinalUser = userRepository.findById(id); // check for null if(optinalUser.isPresent()) { User user = optinalUser.get(); } else { throw new ResourceNotFoundException(); } 옵셔널 타입이 아닌 일반 객체로 받았을 경우 U..

공부/Spring 2020.11.17

PHP에서 Closure로 Lazy loading 구현하기

spring jpa를 사용하면 간단하게 db에 있는 데이터를 객체로 받는다. 연관된 테이블도 어노테이션 하나만으로 JOIN이 가능하다. 또한 fetchType을 이용하여 즉시 조회할지 지연 조회할지 설정도 가능하다. 게시판 테이블 board_id name 1 공지 게시판 2 자유 게시판 게시글 테이블 post_id board_id title content 1 1 공지글 공지글 입니다. 2 1 공지사항 공지사항 입니다 3 2 자유글 자유글 입니다 위 테이블을 예로 들면 게시판 객체에는 멤버 변수로 게시판 아이디, 게시판 이름, 게시글(1:N)이 있을 것이다. 그래서 jpa를 사용하면 게시판 한번 조회 시 1:N으로 연결된 게시글도 모두 가져올 수 있다 하지만 여기서 게시판만 조회해서 사용하려는 경우도 게시..

공부/PHP 2020.05.29
728x90
반응형