인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

thddl7364님의 프로필 이미지
thddl7364

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 데이터 JPA

4분 38초 findAll()과 충돌

해결된 질문

작성

·

602

0

'hello.hellospring.repository.MemberRepository'의 'findAll()'이(가) 'org.springframework.data.jpa.repository.JpaRepository'의 'findAll()'와(과) 충돌합니다; 메서드에 관련 없는 반환 타입이 있습니다.
 
인터페이스에 상속받는 부분에서 빨간줄과 함께 이런 에러가 뜹니다.ㅠ

답변 1

0

안녕하세요. thddl7364님, 공식 서포터즈 OMG입니다.

MemberRepository

인터페이스에샤 findAll의 반환 타입과 

JpaRepository

클래스의 findAll 반환타입을 확인해주세요.

 

해결이 안될 경우 해당 인터페이스&클래스의 전체 코드를 올려주세요

 

감사합니다.

thddl7364님의 프로필 이미지
thddl7364
질문자

package hello.hellospring.repository;

import hello.hellospring.domain.Member;

import java.util.List;
import java.util.Optional;

public interface MemberRepository {
Member save(Member member);
Optional<Member> findById(Long id);//가져올 때 null이면 옵셔널로 감싸서 반환할 수 있다.
Optional<Member> findByName(String name);
List<Member> findAll();
}


package hello.hellospring.repository;

import hello.hellospring.domain.Member;

import javax.persistence.EntityManager;
import java.util.List;
import java.util.Optional;

public class JpaMemberRepository implements MemberRepository{

private final EntityManager em;

public JpaMemberRepository(EntityManager em) {
this.em = em;
}

@Override
public Member save(Member member) {
em.persist(member);
return member;
}

@Override
public Optional<Member> findById(Long id) {
Member member = em.find(Member.class,id);
return Optional.ofNullable(member);
}

@Override
// public Optional<Member> findByName(String name) {
// List<Member> result = em.createQuery("select m from Member m", Member.class).setParameter("name", name).getResultList();
// return result.stream().findAny();
// }

public Optional<Member> findByName(String name) {
List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class)
.setParameter("name", name)
.getResultList();
return result.stream().findAny();
}

@Override
public List<Member> findAll() {
return em.createQuery("select m from Member m", Member.class)
.getResultList();
}
}

해결이 아직 안됐어요 ㅠ

안녕하세요. thddl7364님, 공식 서포터즈 OMG입니다.

코드를 봐도 큰 문제는 안보이네요, 다른 부분까지 같이 살펴보아야 할 것 같습니다.



전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

주의: 업로드시 권한 문제 꼭 확인해주세요
공유 기본 설정은 비공개로 되어 있어 업로드 한 본인 계정만 접근이 가능합니다.

본인 계정이 아닌 링크를 통한 타 계정 접근이 가능한지 확인하는 방법은 업로드 한 구글 계정을 로그아웃하고 링크를 접속하여 "액세스 권한 요청 화면"이 출력되는지 확인을 해주세요.

감사합니다

thddl7364님의 프로필 이미지
thddl7364
질문자

https://drive.google.com/file/d/178invKvr817GEdJX1vjC5W_MoKSSAPav/view?usp=sharing

링크 남겨두었습니다!

코드 확인해보았습니다.

Member 클래스 Import를 보시면 java.lang.reflect.Member입니다.

Member import를 변경해주세요

thddl7364님의 프로필 이미지
thddl7364
질문자

덕분에 해결했습니다. 감사합니다!

thddl7364님의 프로필 이미지
thddl7364

작성한 질문수

질문하기