해결된 질문
작성
·
483
0
안녕하세요.
강의 내용대로 CommentSummary를 클래스 기반 프로젝션으로 그대로 넣어서 했는데 아래와 같은 오류가 나오네요.
No converter found capable of converting from type [me.whiteship.demospringdatacommonweb.post.Comment] to type [me.whiteship.demospringdatacommonweb.post.CommentSummary]
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [me.whiteship.demospringdatacommonweb.post.Comment] to type [me.whiteship.demospringdatacommonweb.post.CommentSummary]
at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:322)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:195)
(중략)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:829)
CommentRepositoryTest > getComment() FAILED
org.springframework.core.convert.ConverterNotFoundException at CommentRepositoryTest.java:38
사실 인터페이스 기반 프로젝션을 사용하면 될 문제이지만,
클래스 기반 프로젝션으로도 정상적으로 동작할거라 봤는데 동작을 안하네요.
Spring 버전이 바뀌면서 클래스 기반 프로젝션을 사용할 수 없게 된걸까요??
바쁘시겠지만 확인해주시면 감사하겠습니다.
답변 1
0
안녕하세요.
스프링 데이터 JPA 레퍼런스를 보면 클래스 기반 프로젝션을 지원하고 있다는 걸 알 수 있습니다.
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections.dtos
혹시 다른 형태의 프로젝션은 잘 동작하나요? 가지고 계신 코드로 인터페이스나 다이나믹 프로젝션은 잘 되는지 궁금하네요.
공식 문서를 보면서 클래스 기반 프로젝션에 관한 내용을 좀 더 살펴본 다음에 다시 테스트를 돌려봐야겠네요. 관련 내용을 좀 더 본 다음에 잘 안되거나 궁금한 사항이 있다면 다시 질문드리겠습니다.
인터페이스 기반 프로젝션은 잘 동작합니다.
나중에 구현할 일이 있을 때는 가급적 인터페이스 기반 프로젝션으로 구현하려 합니다.
답변 감사드립니다.