SpringBoot2.0+的SpringDataJpa中的findOne()变化

在撸SpringBoot2.0+的时候,JpaRepository中的findOne()传id报错

Inferred type 'S' for type parameter 'S' is not within its bound; 

SpringBoot 1.+的版本JpaRepository为

@NoRepositoryBean
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
    <S extends T> S save(S var1);

    <S extends T> Iterable<S> save(Iterable<S> var1);

    T findOne(ID var1);

    boolean exists(ID var1);

    Iterable<T> findAll();

    Iterable<T> findAll(Iterable<ID> var1);

    long count();

    void delete(ID var1);

    void delete(T var1);

    void delete(Iterable<? extends T> var1);

    void deleteAll();
}

SpringBoot2+版本的JpaRepository为

@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
    List<T> findAll();

    List<T> findAll(Sort var1);

    List<T> findAllById(Iterable<ID> var1);

    <S extends T> List<S> saveAll(Iterable<S> var1);

    void flush();

    <S extends T> S saveAndFlush(S var1);

    void deleteInBatch(Iterable<T> var1);

    void deleteAllInBatch();

    T getOne(ID var1);

    <S extends T> List<S> findAll(Example<S> var1);

    <S extends T> List<S> findAll(Example<S> var1, Sort var2);
}

新版本获取findOne()方法可用类似方法解决

  @Test
   public void findOneTest(){
        Product product = new Product();
        product.setCategoryId(1);
        Example<Product> example = Example.of(product);
        Optional<Product> productOptional = respository.findOne(example);

        if (productOptional.isPresent()) {
            Product productResult =   productOptional.get();
            System.out.println(productResult.toString());
        } else {
            // handle not found, return null or throw
            System.out.println("no exit!");
        }

    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,935评论 25 709
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 10,752评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,293评论 19 139
  • 上帝把世界日夜更迭,时间开始流逝。 于是我们短暂的相遇了。 人生最大的乐趣在于, 我为你打开一扇门,你只停驻在窗外...
    IrisScott阅读 988评论 0 0
  • 塞罕坝的秋天。
    京城逍遥客阅读 1,813评论 1 2