Avatar ·

CrudRepository和JpaRepository在Spring Data JPA中的区别是什么?

大家好!我是Spring和Spring Data JPA的新手,这两个接口总是让我感到困惑。当我在网上看示例时,发现有些人使用`CrudRepository`,而另一些人使用`JpaRepository`。 例如,我通常这样声明我的repositories: ```java public interface UserRepository extends CrudRepository { User findByEmail(String email); } ``` 但我也见过这样的写法: ```java public interface UserRepository extends JpaRepository { User findByEmail(String email); } ``` 两者都能工作,都提供save()、findById()、findAll()、delete()等方法。那么区别到底在哪里?为什么Spring要创建两个不同的接口? 也许JpaRepository只是CrudRepository的新版本?或者它们有不同的功能?我尝试过谷歌搜索,但英文回答对我来说太难了。请用简单的话解释一下,什么时候该用哪个接口,以及它们的关键区别。非常感谢!