[SPRING] `Long을 Spring 5에서 Example <S>`로 변환 할 수 없다. JPA findOne ()
SPRING`Long을 Spring 5에서 Example `로 변환 할 수 없다. JPA findOne ()
나는 인자가 일치하지 않는다. Long은 아래 코드의 findOne 호출에서 Example 로 변환 할 수 없습니다.
public Optional<AuditEvent> find(Long id) {
return Optional.ofNullable(persistenceAuditEventRepository.findOne(id))
.map(auditEventConverter::convertToAuditEvent);
}
위의 코드는 Spring 5와 Spring Boot 2로 변환 중입니다. 원래의 Spring 4 및 Spring Boot 1 응용 프로그램에서 정상적으로 작동합니다.
어떤 아이디어를 위의 코드를 변환해야합니까?
해결법
-
==============================
1.Spring 5와 Spring 데이터 JPA 2.0.0.M3의 일부로, CrudeRepository에서 findOne 메소드가 QueryByExampleExecutor의 메소드로 제거 된 것을 볼 수 있습니다. 따라서 Optional
findById (ID arg0);로 변경하는 것이 더 좋습니다. findOne 메서드 대신 아래를 찾으십시오 : Spring 5와 Spring 데이터 JPA 2.0.0.M3의 일부로, CrudeRepository에서 findOne 메소드가 QueryByExampleExecutor의 메소드로 제거 된 것을 볼 수 있습니다. 따라서 Optional
findById (ID arg0);로 변경하는 것이 더 좋습니다. findOne 메서드 대신 아래를 찾으십시오 : @NoRepositoryBean public interface CrudRepository<T, ID> extends Repository<T, ID> { <S extends T> S save(S arg0); <S extends T> Iterable<S> saveAll(Iterable<S> arg0); Optional<T> findById(ID arg0); boolean existsById(ID arg0); Iterable<T> findAll(); Iterable<T> findAllById(Iterable<ID> arg0); long count(); void deleteById(ID arg0); void delete(T arg0); void deleteAll(Iterable<? extends T> arg0); void deleteAll(); }
QueryByExampleExecutor :
public abstract interface QueryByExampleExecutor<T> { public abstract <S extends T> S findOne(Example<S> paramExample); public abstract <S extends T> Iterable<S> findAll(Example<S> paramExample); public abstract <S extends T> Iterable<S> findAll(Example<S> paramExample, Sort paramSort); public abstract <S extends T> Page<S> findAll(Example<S> paramExample, Pageable paramPageable); public abstract <S extends T> long count(Example<S> paramExample); public abstract <S extends T> boolean exists(Example<S> paramExample); }
QueryForExampleExecutor에서 문서 확인 :
https://docs.spring.io/spring-data/jpa/docs/2.0.0.RC2/reference/html/
-
==============================
2.findOne () 대신 getOne ()을 사용할 수도 있습니다.
findOne () 대신 getOne ()을 사용할 수도 있습니다.
from https://stackoverflow.com/questions/45582133/getting-long-cannot-be-converted-to-examples-in-spring-5-jpa-findone by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC에서 자동 생성 ID (0) | 2019.05.13 |
---|---|
[SPRING] Play-Framework 2.4 : Juice 대신 Play Framework를 사용하여 스프링 종속성 삽입 사용 (0) | 2019.05.13 |
[SPRING] @RequestMapping 정규 표현식 (0) | 2019.05.13 |
[SPRING] Spring 애플리케이션이 데이터를 지속하지 않는 것으로 보입니다. (0) | 2019.05.13 |
[SPRING] Websocket - InvalidStateError : 연결이 아직 설정되지 않았습니다. (0) | 2019.05.13 |