목록분류 전체보기 (572)
오봉이와 함께하는 개발 블로그
상황 application.properties설정을 MySQL에 맞추고 데이터가 잘 들어가는지 실험을 했는데, 아래 설명할 오류 세 가지가 발생했다. 오류 ERROR 1054 (42S22): Unknown column '컬럼명' in 'field list' 이 오류는 @Embeded타입인 Phone엔티티 때문에 발생한 문제다. 해당 엔티티의 필드명은 firstNumber, middleNumber, lastNumber 세 가지가 있는데, JPA에서 엔티티 필드명과 DB 컬럼명을 메칭할 때 이름을 바꾼 다는 것을 생각하게 되었다. 엔티티 필드를 보통 카멜케이스로 작성할텐데 DB에는 관례상 언더스코어 방식을 사용해서 컬럼명 매칭을 first_Number로 하게 된다. 기존 DB 컬..
2022. 09. 20 (화) 다시 시작.
인터페이스 지원 - QuerydslPredicateExecutor 공식 URL : https://docs.spring.io/spring-data/jpa/docs/2.2.3.RELEASE/reference/html/ #core.extensions.querydsl QuerydslPredicateExecutor 인터페이스 public interface QuerydslPredicateExecutor { Optional findById(Predicate predicate); Iterable findAll(Predicate predicate); long count(Predicate predicate); boolean exists(Predicate predicate); // ... more functionality ..
스프링 데이터 페이징 활용3 - 컨트롤러 개발 실제 컨트롤러 @RestController @RequiredArgsConstructor public class MemberController { private final MemberJpaRepository memberJpaRepository; private MemberRepository memberRepository; @GetMapping("/v1/members") public List searchMemberV1(MemberSearchCondition condition) { return memberJpaRepository.search(condition); } @GetMapping("/v2/members") public Page searchMemberV2(Me..
스프링 데이터 페이징 활용1 - CountQuery 최적화 스프링 데이터 라이브러리가 제공 count 쿼리가 생략 가능한 경우 생략해서 처리 페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈보다 작을 때 마지막 페이지 일 때 (offset + 컨텐츠 사이즈를 더해서 전체 사이즈 구함) PageableExecutionUtils.getPage()로 최적화 JPAQuery countQuery = queryFactory .select(member) .from(member) .leftJoin(member.team, team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeGo..