关于SpringDataJpa中findOne()方法报错问题

首先我说一下我遇到问题的由来

我先是用的SpringDataJPA的1.11版本,可以使用findOne()方法根据id查询,

然后我使用了2.0.5版本,发现findOne()方法报错了,不能用来当作根据id查询了,

2.0.5的已经变成了findById(id).get()来查询了

这是两个不同的版本,源码已经发生变化。

后来去找源码中的findOne方法发现,findOne方法已经变了。

想了解跟多的朋友可以去https://projects.spring.io/spring-boot/了解

1.xx版本的CrudRepository类是这样的:

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

    extends T> Iterable save(Iterable var1);

    T findOne(ID var1);

    boolean exists(ID var1);

    Iterable findAll();

    Iterable findAll(Iterable var1);

    long count();

    void delete(ID var1);

    void delete(T var1);

    void delete(Iterableextends T> var1);

    void deleteAll();
}

2.x.x版本的CrudRepository类是这样的:

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

    extends T> Iterable saveAll(Iterable var1);

    Optional findById(ID var1);

    boolean existsById(ID var1);

    Iterable findAll();

    Iterable findAllById(Iterable var1);

    long count();

    void deleteById(ID var1);

    void delete(T var1);

    void deleteAll(Iterableextends T> var1);

    void deleteAll();
}

发现了吗?     findOne方法不在CrudRepository中了

而现在的findOne去了哪里呢?

public interface QueryByExampleExecutor {
    extends T> Optional findOne(Example var1);

    extends T> Iterable findAll(Example var1);

    extends T> Iterable findAll(Example var1, Sort var2);

    extends T> Page findAll(Example var1, Pageable var2);

    extends T> long count(Example var1);

    extends T> boolean exists(Example var1);
}

你可能感兴趣的:(SpringBoot)