스프링 데이터 JPA는 유연한 반환 타입을 지원한다.

List<Member> findListByUsername(String username);
	
Member findMemberByUsername(String username);

Optional<Member> findOptionalByUsername(String username);

이런 다양한 반환 타입을 지원한다.

@Test
public void returnType() {
	Member m1 = new Member("AAA", 10);
	Member m2 = new Member("BBB", 20);

	memberRepository.save(m1);
	memberRepository.save(m2);

	List<Member> result1 = memberRepository.findListByUsername("AAA");
	assertThat(result1.size()).isEqualTo(1);

	Member result2 = memberRepository.findMemberByUsername("AAA");
	assertThat(result2).isEqualTo(m1);

	Optional<Member> result3 = memberRepository.findOptionalByUsername("BBB");
	assertThat(result3.get()).isEqualTo(m2);
}

주의점

그 밖에 지원하는 타입들