Error: findOne 오류~ Optional Spring Data 1.x대비 2.x대에 크게 변한점
Message : Type mismatch Require Example<(???…)>
이상한 오류같은 메시지… kotlin 버전충돌 때문에 발생한 적이 있어서 그 부분을 찾았는데 이상해서 찾아보니 SpringData 문제였다.
분석
예전에는 이렇게 썼다.
@Repository public interface SocialRepository extends JpaRepository<SocialEntity, Long> { } — @Autowired private SocialRepository socialRepository;
socialRepository.findOne(ID)
이렇게 하면 CRUDRepository 내부의 T findOne(ID)가 호출이 됐는데
@NoRepositoryBean public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> { T findOne(ID id); }
이 부분이 변경됐다.
CRUDRepository에는 Optional(T) findByID(ID)가 들어가 있다.
@NoRepositoryBean
public interface CrudRepository<T, ID> extends Repository<T, ID> {
Optional
findOne을 호출하면
QueryByExampleExecutor{