Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

@Query, 반환 타입 본문

인프런/[인프런] Spring Data JPA

@Query, 반환 타입

Seung__ 2021. 8. 29. 16:08

1. JPA 반환 타입


    @Test
    public void returnType(){
        Member member1 = new Member("aaa", 10);
        Member member2 = new Member("bbb", 20);
        memberRepository.save(member1);
        memberRepository.save(member2);

        List<Member> members = memberRepository.findListByUserName("aaa");
        Optional<Member> optionalMember = memberRepository.findOptionalByUserName("aaa");
        Member findMember = memberRepository.findMemberByUserName("aaa");

        /**
         * Collection을 조회하는데 결과가 없으면? 결과는 null이 아님!
         * 빈 컬렉션을 반환한다. .size() = 0
         */
        List<Member> sdsdfsdf = memberRepository.findListByUserName("sdsdfsdf");
        System.out.println("sdsdfsdf = " + sdsdfsdf);
        System.out.println("sdsdfsdf.size() = " + sdsdfsdf.size());
    }

 

  • 단건
    • 결과 없음: null 반환
      Member findMember = memberRepository.findMemberByUserName("cddddddd");
      System.out.println("findMember = " + findMember);​

      findMember = null​

      • JPA에`서는 SingleResult의 경우 result가 없으면 NoResultException을 발생시킨다.
        하지만 SpringDataJpa가 한 번 감싸서 try-catch 후 null로 반환.
      • 근데 Optional로 받으면.. 고민해결 ㅋㅋㅋ
    • 결과가 2건 이상: javax.persistence.NonUniqueResultException 예외 발생
      • .JPA : NonUniqueResultException
        Srping : IncorrectResultSizeDataAccessException: query did not return a unique result
        Spring이 한 번 변환함.
  • 컬렉션
    • Collection을 조회할 때 결과가 없으면 null 이 아닌 empty collection으로 반환한다.
    • size를 직어보면 0 이다.!!!!
    • List는 무조건 null이 아니다!!
      sdsdfsdf = []
      sdsdfsdf.size() = 0

 

 

2. GitHub : 210829 QueryMethod, return type


 

GitHub - bsh6463/SpringDataJpa

Contribute to bsh6463/SpringDataJpa development by creating an account on GitHub.

github.com

 

Comments