繁体   English   中英

JVM 如何知道我们自己的方法在 Jpa 存储库中的实现?

[英]How the JVM will know the implementation of our own methods in the Jpa Repository?

我们可以使用 Jpa 存储库方法,例如保存、删除等。此外,我们可以编写自己的方法,而无需通过方法名称约定进行任何实现。 我的问题是,

实体 class

public class Movie {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String title;
    private double rating;
    private double watchTime;
    private int releaseYear;
}

存储库 class

public interface MovieRepository extends JpaRepository<Movie, Long> {

    List<Movie> findByWatchTimeAndReleaseYear(double 2.30d, int 2020);**//Line i have doubt**
    
}

JVM 怎么知道这个方法的实现? 因为我们没有实现这一点。

谁能帮帮我吗?

它是 Spring 数据,它在运行时使用代理机制生成适当的实例,然后在您提供实例变量的适当位置自动装配,例如在您的服务方法中。 如果您调试 IDE 中的代码 - 您可以看到该实例的所有详细信息,如下所示

要了解有关 Spring 如何创建和使用运行时生成的代理的更多信息,您可以参考文档

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM