본문 바로가기

Spring53

Enum 사용 예제 Enum: 열거형으로 객체를 새로 생성할 때 사용한다. 코드 package com.example.bookmanager.domain; public enum Gender { MALE, FEMALE } User 객체에 추가 private Gender gender; enum 값을 확인하기 위해 쿼리 작성 (JpaRepository를 상속받은 위치에서 작성한다.) // enum test // 사용자가 쿼리를 직접 입력하고 반영할 수 있도록 설정 @Query(value = "select * from user limit 1;", nativeQuery = true) Map findRawRecord(); 테스트 코드 @Test void enumTest(){ Dto(); User user = userRepository.f.. 2021. 7. 18.
Entity 기본 속성 @Entity: DTO에 명시해주는 어노테이션으로 해당 객체가 JPA에서 관리되어지는 Entity객체임을 나타낸다. 반드시 구분할 수 있는 기본키가 존재해야한다.(@ID 어노테이션으로 정의 해준다.) @GeneratedValue: 기본키를 자동적으로 생성할 수있도록 도와주는 어노테이션 @Table: DTO에 명시해주는 어노테이션으로 선언해주게 되면 해당 클래스의 매핑되는 테이블을 생성할 때 테이블의 해당하는 속성을 정의해 줄 수 있다. 테이블명 선언 예제 @Table(name = "user_aa") 확인 인덱스와 키 설정도 함께 만들어 줄 수 있지만 실제 DB에서는 사용이 불가하다. @Table(name = "user_aa", indexes = {@Index(columnList = "name")}, un.. 2021. 7. 18.
Query Method 예제 - 5(페이징 처리) 페이징 처리 코드 // Page: 응답 값, Pageable: 요청 값 Page findByName(String name, Pageable pageable); 테스트 코드 // 페이징 처리 System.out.println("findByName: " + userRepository.findByName("martin", PageRequest.of(0, 1, Sort.by(Sort.Order.desc("id"))))); 확인 페이징 처리된 데이터를 확인하는 방법 테스트 코드 // 내부의 값을 가져오는 방법 System.out.println("findByName2: " + userRepository.findByName("martin", PageRequest.of(0, 1, Sort.by(Sort.Order.de.. 2021. 7. 17.
Query Method 예제 - 4 (정렬) 상위 데이터 1개를 가져오는 구문 List findTop1ByName(String name); 테스트 코드 System.out.println("findTop1ByName: " + userRepository.findTop1ByName("martin")); 확인 마지막 한 줄을 가져오는 구문(정렬 후에 마지막 한줄을 가져온다.) // 역순으로 정렬해서 마지막 한줄을 출력하는 예제 List findTopByNameOrderByIdDesc(String name) 테스트 코드 System.out.println("findTopByNameOrderByIdDesc: " + userRepository.findTopByNameOrderByIdDesc("martin")); 확인 다중 정렬을 사용하는 예제 // Id의 역순,.. 2021. 7. 17.
Query Method 예제 - 3 해당 컬럼이 null이 아닌 값을 찾는 예제 List findByIdIsNotNull(); 테스트 코드 System.out.println("findByIdIsNotNull: " + userRepository.findByIdIsNotNull()); 원하는 값과 일치하는 데이터 출력 예제(in) List findByNameIn(List names); 테스트 코드 (배열로 파리미터를 입력한다.) System.out.println("findByNameIn: " + userRepository.findByNameIn(Lists.newArrayList("martin","dennis"))); 사용자 지정문자를 포함한 데이터를 출력하는 예제(like) List findByNameIn(List names); List fi.. 2021. 7. 17.
QueryMethod 예제 2 jpa 메소드를 생성할 때 by 이하의 절에 where 조건에 추가할 변수명을 입력하여 사용한다. and / or 조건 예제 // and, or 조건문 List findByEmailAndName(String email, String name); List findByEmailOrName(String email, String name); 테스트 코드 System.out.println("findByEmailAndName: " + userRepository.findByEmailAndName("martin@fastcampus.com","martin")); System.out.println("findByEmailOrName: " + userRepository.findByEmailOrName("martin@fastc.. 2021. 7. 17.