반응형

kotlin에서 jpa를 사용할 때 다음과 같은 에러가 난다면 해당 클래스에 Serializable을 상속받고 @IdClass(클래스명.class)를 선언해주자

에러발생코드

Caused by: org.hibernate.MappingException: Composite-id class must implement Serializable

위와 같은 에러 발생

문제 해결을 위해서 아래와 같이 코드 추가

아 그리고 composite key로 구성할 column에는 모두 @Id 애노테이션을 달아주어야 한다.

반응형
반응형

스프링부트 with JPA 프로젝트 작업중 신기한게 로컬환경에서는 에러가 안났는데 alpha, real환경에만 배포하면 위와 같은 에러 메세지가 나왔다....

Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Either use @Param on all parameters except Pageable and Sort typed once, or none at all!

문제의 원인이 무었이었는고 하니...

JPA 에서 매개변수 2개를 받는 메서드에 한 변수에만 @Param을 지정해서 사용하여서 발생하였다...

jobId 매개변수에도 @Param을 명시적으로 주니 정상적으로 해결 되었다.

void upsertAnalysisData(@Param("jobId") int jobId, @Param("audience") AudienceAnalysis audienceAnalysis);

혹시나 비슷한 에러가 발생한다면 JPA Repository부분에 특정 매개변수에만 @Param을 주어서 사용하진 않았는지 확인해보자!

반응형

+ Recent posts