Spring Data JPA底层机制没有实现

时间:2016-10-30 14:57:08

标签: spring spring-data spring-data-jpa

我开始阅读本教程:spring boot tutorial

在这里我读到了在模型模块下他们实现了POJO和Repository接口。 - > tutorial on github

在Repository接口中,我发现了两种没有实现的方法: findByUsername, findByAccountUsername。

我的问题是:

  1. 当存储库接口中的那些方法没有时,它是如何工作的 实现和那些不是从任何超类继承?
  2. 是否可以使用名称约定和反射?
  3. Spring Data是否有内存数据库可供使用?

2 个答案:

答案 0 :(得分:1)

  

(1)当存储库接口中的那些方法具有时,它是如何工作的   没有实现,那些不是从任何超类继承的?

Repository接口由Spring Container在运行时实现(备份)。

  

(2)它是否适用于名称约定和反思?

是的,它适用于命名约定,而spring容器使用JDK的代理类来拦截对存储库的调用。

  

(3)Spring Data是否有内存数据库可供使用?

不,Spring不使用任何内存数据库

请参阅以下链接以获取更详细的说明:

How are Spring Data repositories actually implemented?

答案 1 :(得分:1)

对于你的问题1和2,他们是对的。他们使用命名约定和反射。如果你不想使用他们的命名约定,你可以使用@Query with HQL,当然隐藏的类(为你的界面实现)也将处理这些查询(你不需要滚动实施出来)。
对于您的上一个问题,作为IMDB的列表:https://en.wikipedia.org/wiki/List_of_in-memory_databases,弹簧数据不支持它们。您必须为每个驱动程序调用另一个Java驱动程序或弹簧产品。