JPA(3)
-
[TS] `java.lang.ClassNotFoundException: kotlin.reflect.full.KClasses` - Error 해결
위 에러는 Java로 작성되어있는 코드를 Kotlin으로 리팩토링 중 발생했다 먼저 코드 리팩토링에 앞서 Kotlin으로 여러 test case를 만들어 놓은 후 리팩토링을 진행했다. 이 후 Test코드를 실행 시켰는데 아래와 같은 에러를 보게되었다. Caused by: java.lang.NoClassDefFoundError: kotlin/reflect/full/KClasses at org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$2.lambda$discover$3(PreferredConstructorDiscoverer.java:163) at java.base/java.util.Optional.orElseG..
2024.03.14 -
[TS] repositoryCustom 파라미터가 없는 조회 기능 구현시 에러발생! => org.springframework.data.mapping.PropertyReferenceException: No property {method} found for type {class}
아래 내용은.. 결과적으로 문제 해결은 되지 않았다. 원인은 ArticleRepository.interface의 파일명이 잘못되어 발생한 것이다. repository, repositoryCustom, repositoryImpl... 과 같은 interface 및 class를 만들때는 이름에 오타가 없게 꼼꼼하게 확인하자. 아래 에러로그에서도 보이듯이 오타를 잡아주지 않는경우도 발생했다.ㅠ Entity의 마지막 순번값을 가져오는 간단한 조회 기능을 구현하다 에러가 발생했다... 결론부터 말하자면 JpaRepository를 구현하고 파라미터 없이 메소드를 작성할 때 반환값이 Entity가 아니라면 ex) DTO, String, Integer...etc (이건 내 추측이다. 정확한 원리는 추후에 추가예정.....
2023.04.17 -
[Annotation] @Builder - setter 코드 간소화
기본적으로 '@Builder' 는 Lombok pakage에 포함되어있는 어노테이션이다 아래 예제는 DTO에 사용된 코드를 기반으로 작성한 클래스이니 참고하길 바란다 내용은 Setter기능을 대체하면서 코드 가독성을 높혀주는 @Builder의 리뷰이다. MembertestDto에 @Builder 어노테이션을 사용하고 다른 곳에서 객체를 인스턴스화 할 때 기본생성자를 이용한 뒤 setter를 사용하는 방식이 아닌 class.builder() 를 사용해 오른쪽 화면과 같이 가독성이 높은 코드 방식으로 setter 메소드를 대체할 수 있다. 또한 값을 입력함에 있어 Compile 시점에 Error를 발생하기에 변수명의 오타같은 Human Error를 방지할 수 있다. 간단하게 리뷰를 마치며 이외에도 Lombo..
2023.03.08