[SpringBoot JPA] 쿼리메소드 SELECT 정리

반응형
728x90
반응형

전체 리스트 조회

List<User> userList = userRepository.findAll();

 

 

전체 리스트 조회 + regDts 컬럼 역순 정렬

List<User> userList = userRepository.findAll(Sort.by(Sort.Direction.DESC, "regDts"));

 

 

데이터 단건 조회 (1)

Long Type Id : 1
Optional<User> userOptional = userRepository.findById(1L);

 

Optional 리턴

https://devfunny.tistory.com/330

 

자바 8의 Optional 등장

NullPointerException NullPointerException은 개발자가 한번이라도 만나봤을 에러이다. 그정도로 흔하게 일어나는 에러로, 이는 “자바의 모든 객체는 NULL일 수 있다.”” 라는 말을 확인시켜준다. NullPoint

devfunny.tistory.com

 

 

orElse 사용하여 없을 경우 null 리턴하기

User user = userRepository.findById(1L).orElse(null);

 

 

데이터 단건조회 (2)

@Transactional // could not initialize proxy 에러 해결
void crud_user_데이터등록_조회_findOne() { // create, read, update, delete
  // could not initialize proxy
  User user = userRepository.getOne(1L); // Lazy (getReference)
}

 

 

데이터 개수 조회

long count = userRepository.count();

 

 

isExist 존재여부 조회 (count(*)로 판별된다)

/* count(*) 쿼리가 실행됨 */
boolean exist = userRepository.existsById(1L);

 

 

데이터 단건 삭제

userRepository.deleteById(1L);

 

 

데이터 전체 삭제

userRepository.deleteAll()

 

 

파라미터에 해당하는 데이터 리스트 삭제

userRepository.deleteAll(userRepository.findAllById(Lists.newArrayList(1L, 3L)));

 

 

컬럼 NAME의 조건으로 데이터 조회

System.out.println(userRepository.findByName("test1"));
System.out.println(userRepository.findOptionalByName("test1"));

 

 

컬럼 EMAIL의 조건으로 데이터 조회

/* 모두 동일한 쿼리, 동일한 결과 */
System.out.println("findByEmail : " + userRepository.findByEmail("seohae1@naver.com"));
System.out.println("getByEmail : " + userRepository.getByEmail("seohae1@naver.com"));
System.out.println("readByEmail : " + userRepository.readByEmail("seohae1@naver.com"));
System.out.println("queryByEmail : " + userRepository.queryByEmail("seohae1@naver.com"));
System.out.println("searchByEmail : " + userRepository.searchByEmail("seohae1@naver.com"));
System.out.println("streamByEmail : " + userRepository.streamByEmail("seohae1@naver.com"));
System.out.println("findUserByEmail : " + userRepository.findUserByEmail("seohae1@naver.com"));
System.out.println("findSomeThingByEmail : " + userRepository.findSomeThingByEmail("seohae1@naver.com"));

 

반응형

Designed by JB FACTORY