Trouble Shooting

    java.lang.UnsupportedOperationException 에러

    java.lang.UnsupportedOperationException 에러

    상황 Service 로직 테스트 코드를 작성하는 도중 findNotice.getNoticeImages().clear(); 부분에서 에러가 발생하는 것을 확인했다. 문제 파악 테스트 코드를 작성하기 위해 Builder를 작성하는 도중 List 타입 데이터에 대해 new ArrayList형식이 아닌 Arrays.asList 방식으로 데이터를 초기화 했다 private Notice testNotice() { return Notice.builder() .noticeId(1L) .title("title") .noticeDetail("detail") .regYmd(LocalDateTime.now()) .noticeImages(Arrays.asList(testImage(1L, "test1"), testImage(2L..

    @DataJpaTest  사용 시 Failed To Replace DataSource with an Embedded database for test 이슈

    @DataJpaTest 사용 시 Failed To Replace DataSource with an Embedded database for test 이슈

    상황 JPA를 이용해 Persistence Layer 로직을 구현한 후 해당 로직들을 @DataJpaTest를 이용해 테스트를 하려는 도중 “Failed To Load ApplicationContext”예외가 발생하면서 “Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource”에러 메세지가 발생되었다. 문제 파악 일단 Error Creating bean with name datasource.. 라는 문구에서 Datasource 관련 설정에서 문제가 발생했구나라고 생각했다. 하지만, application.yml 파일은 정상적으로 설정이 되어있었다. 그래서 에러 메세지를 조금 더 내려보니..

    [JPA] @OneToMany 연관관계 매핑 시 Collection을 초기화 했지만 NullPointerException이 발생하는 이슈

    [JPA] @OneToMany 연관관계 매핑 시 Collection을 초기화 했지만 NullPointerException이 발생하는 이슈

    🤔 상황 @OneToMany 애노테이션을 통해 연관 관계 매핑 시 NPE를 피하기 위해 관례에 따라 Collection을 초기화 해주었지만 지속적으로 매핑 필드에서 NullPointerException이 발생하는 이슈가 있었다. 🧑‍💻 문제 파악 초기화를 해줌에도 필드의 초기화가 되지 않는 것은 @Builder 애노테이션을 통해 객체를 생성하고 있었기 때문에 안되는건 아닐까 고민해보았다. @Builder 애노테이션이 붙은 클래스는 생성 시 동일한 필드를 가진 내부 Builder 클래스를 통해 설정된 속성을 변경하는 메소드를 구현한다. 이 때, 내부 클래스의 필드는 한 번 값이 지정된 이후에도 메소드를 통해 값이 변경될 수 있기 때문에 Non-Final 형태로 필드가 지정된다. 따라서, 내부 Builder..