-
[Gradle] gradle dependency report 보기
Gradle Report 가끔 의존성을 설정하지않은 라이브러리가 보일때도 있고 버전이 여러개로 나오는 경우도 있다. 특정 상위패키지로 인해 자동으로 들어온건데, 그 경로를 추적해서 찾기가 생각보다 힘들다. gradle에서 지원하는 task 중 dependencies를 보여주는 것도 있지만 텍스트형태의 트리구조라 깔끔하지는 않다. 그런 이유로 gradle에서 플러그인으로 reporting 기능을 지원해준다. Plugin 설정 build.gradle에 플러그인을 입력해주면 된다. (gradle 6.9 기준) plugins { id 'project-report' } Reporting 플러그인을 ... Read More
-
[SPRING/JPA] failed to lazily initialize a collection of role 오류
오류 fetch = FetchType.LAZY로 설정 된 entity의 데이터를 사용할 때 데이터조회를 못하면서 아래 오류가 발생했다. failed to lazily initialize a collection of role: com.my.jpa.entity.xxx.yyy, could not initialize proxy - no Session 원인 Lazy 로딩을 하기 위해서는 조회를 했던 영속성 컨텍스트가 유지가 되어야 하는데, 해당 영속성 컨텍스트가 끝나버려서 없어진게 원인이다. 즉, 조회를 진행한 트랜잭션이 이미 종료되었다고 보면 될 듯 하다. 해당 트랜잭션이 유지가 되어야 Lazy 로딩이 가능... Read More
-
[SPRING] Controller에서 빈 문자열을 NULL로 받기
컨트롤러에서 파라미터를 받을 때, 전달 값이 없는 String이 null이 아니라 “” 로 올 때가 있다. 값이 없는 경우 Null로 받기를 원해서 찾아보니 여러가지 방법이 있었다. 그 방법들을 정리해본다. 하나의 컨트롤러보단 글로벌하게 설정하는 방향으로 접근했다. @InitBinder 컨트롤러에 사용하는 어노테이션으로 데이터가 바인딩 될 때 호출이 된다. 보통 사용을 원하는 컨트롤러에 개별적으로 설정하는데, 공통적으로 하고 싶다면 @ControllerAdvice 를 이용해서 설정하면 된다고 한다. @ControllerAdvice public class GlobalBinding{ @InitBin... Read More
-
[SPRING/JPA] JPA Example 사용 할 때 날짜 조건 포함하기
Spring data의 Example을 이용해서 검색을 주로 했는데 날짜를 조건으로 넣어야 하는 상황이 생겼다. 검색을 해보니 Example은 날짜에 대한 제어는 불가능해 보였고 Spring data의 Specification을 이용해서 구현하면 가능하다는걸 보았다. Specification Spring 블로그에 가보면 이렇게 설명이 되어있다. To be able to define reusable Predicates we introduced the Specification interface that is derived from concepts introduced in Eric Evans’ Domain... Read More
-
[JPA] Respository 만들 때 Not a managed type: class java.lang.Object 오류
오류 java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object JPA에서 공통으로 사용 할 repository를 만드려고 했을 때 해당 메세지가 발생했다. 공통 repository를 만들어서 특정 기능을 공유하려고 했다. public interface CommonRepository<T, ID> extends JpaRepository<T, ID>, JpaSpecificationExecutor<T> { default List<T> something(){ ... } ... Read More