Java SpringDataJPA中的自定义方法是如何实现和执行的?
我在我的项目中使用spring data jpa,我有以下几段代码: 我的存储库:Java SpringDataJPA中的自定义方法是如何实现和执行的?,java,spring,hibernate,spring-data-jpa,spring-data,Java,Spring,Hibernate,Spring Data Jpa,Spring Data,我在我的项目中使用spring data jpa,我有以下几段代码: 我的存储库: @Repository @Transactional public interface StudentRepository extends PagingAndSortingRepository<Student, Long> { List<Student> findByIdIn(List<Long> ids); } 在我服务班的某个地方,我 @Autowired Stu
@Repository
@Transactional
public interface StudentRepository extends PagingAndSortingRepository<Student, Long> {
List<Student> findByIdIn(List<Long> ids);
}
在我服务班的某个地方,我
@Autowired
StudentRepository studentRepository;
然后我从服务层调用findByIdIn,如下所示:
studentRepository.findByIdIn(listOfIds);
findByIdIn(listOfIds)方法工作得非常好,一切正常
我知道findByIdIn()方法的实现是由spring数据jpa提供的
但我不知道它的实施情况如何?
它的具体实施是什么?
这些方法是否在运行时生成取决于方法名称?如果是,它们是如何动态生成和执行的
谢谢 您可以深入研究一下Spring代码的核心,看看它是如何工作的(),但基本上,它是在启动时将接口方法解析为HQL的
您可以只在一个不存在的字段中编辑一个方法名,在启动时您会得到一个错误,说没有这样的字段。请浏览这篇文章。这可能会有帮助:)这篇文章很好地解释了当我们用@Query注释我们的附加方法时的流程。但在本例中,我没有用@Query注释我的方法。
studentRepository.findByIdIn(listOfIds);