• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Custom Repository에 @Repository와 @Transactional

20.06.06 00:30 작성 조회수 148

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

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