我得到一个argument mismatch; Long cannot be converted to Example<S>
在下面代码中的 findOne 调用上:
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 应用程序中运行良好。
我需要将上面的代码转换成什么想法吗?
作为 Spring 5 和 Spring data JPA 2.0.0.M3 的一部分,我可以看到findOne
方法被删除Crud存储库到其中的一个通过示例查询执行器所以最好改为Optional<T> 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();
}
通过示例查询执行器:
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/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)