강의

멘토링

커뮤니티

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

hun님의 프로필 이미지
hun

작성한 질문수

스프링 데이터 JPA

스프링 데이터 Common 7. 커스텀 리포지토리 만들기

Custom Repository에 @Repository와 @Transactional

작성

·

270

0

안녕하세요.

항상 강의 잘듣고 있습니다.

다름이 아니라 Custom Repository의 구현체에서 @Repository와 @Transactional이 꼭 필요한지 궁금해서 아래 코드에서 @Repository와 @Transactional을 제외한체 테스트 코스를 실행시 정상적으로 통과되었습니다

그래서 현재 궁금한게 Custom Repository에서 @Repository와 @Transactional은 필요없는 것인지.

그리고 만약 필요하다면 어떤 이유로 필요한 것인지 궁금합니다.

감사합니다.

@Repository
@Transactional
public class PostCustomRepositoryDefault implements PostCustomRepository<Post> {

    @Autowired
    EntityManager entityManager;

    @Override
    public List<Post> findByPost() {
        System.out.println("custom findMyPost");
        return entityManager.createQuery("SELECT p FROM Post AS p",Post.class).getResultList();
    }

    @Override
    public void delete(Post entity) {
        System.out.println("custom delete");
        entityManager.remove(entity);
    }
}

답변 1

0

백기선님의 프로필 이미지
백기선
지식공유자

무슨 테스트를 작성해서 성공하셨는다는건지 모르겠으나 의도한 테스트 (빈 등록 여부, 트랜잭션 동작 여부)가 성공적으로 실행됐다면 생략하셔도 좋습니다. 인터페이스에 선언한 애노테이션도 적용이 되기 때문에 구현체에도 동일한 애노테이션을 붙여줄 필요는 없습니다.

hun님의 프로필 이미지
hun

작성한 질문수

질문하기