spring Sping Boot JPA Rest界面

ippsafx7  于 2022-10-30  发布在  Spring
关注(0)|答案(1)|浏览(157)

在Sping Boot 和JPA中,有一个接口JpaRepository,它已经提供了最重要的方法,如findAllsaveAll
如果没有,怎么能定义这样的接口呢?我曾经研究过JpaRepository,那里的方法没有编码出来。但是也只有指定了List<T> findAll();,实际的代码在哪里?
多谢了

xlpyo6sf

xlpyo6sf1#

这些方法没有被编码出来。但是也只能用List findAll();实际代码在哪里?
JpaRepository只是一个接口,这意味着它只提供该接口可用内容的声明和签名。
JpaRepository是spring利用JPA layer的一种方式,并提供了一些对程序员非常有用的附加常用功能。
尽管如此,理解JPA layer遵循JPA specification是很重要的,这只是一个规范而不是实现。多个提供者提供了他们的实现,只要他们符合这个规范。这些提供者(例如hibernateeclipseLinkDataNucleus)提供JPA layer的功能。这些提供程序提供与数据库通信的代码,并执行jpa layer的实际工作。
JpaRepository的功能是:它利用了JPA layer,并通过调用jpa layer上必需的功能提供了一些额外的功能,并公开了一些常见的功能。因此,JpaRepository不会使用本机查询直接与数据库通信,而是使用hibernte示例中提供的jpa layer,并提供一些jpa query冬眠以获取它想要的东西。
在Spring中,您可以找到一些JpaRepository的实现类,如SimpleJpaRepository.class,但它们同样不提供端到端功能,而是通过jpa layer间接与提供程序(如hib)通信,以便为程序员提供一些常用功能。

相关问题