~~~~
我在argument mismatch; Long cannot be converted to Example<S>下面的代码中找到了findOne调用:
argument mismatch; Long cannot be converted to Example<S>
public Optional<AuditEvent> find(Long id) { return Optional.ofNullable(persistenceAuditEventRepository.findOne(id)) .map(auditEventConverter::convertToAuditEvent); }
上面的代码将转换为Spring 5和Spring Boot2。在原始的Spring 4和Spring Boot 1应用程序中,它可以正常工作。
任何想法我需要将上面的代码转换为?
由于Spring 5和Spring数据JPA 2.0.0.M3的一部分,我可以看到findOne法中删除 CrudRepository 到一个在 QueryByExampleExecutor 所以最好是变化Optional<T> findById(ID arg0);的,而不是findOne方法,请在下面找到:
findOne
Optional<T> findById(ID arg0);
@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/