java—jvm如何知道我们自己的方法在jpa存储库中的实现?

jchrr9hc  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(428)

我们可以使用jpa存储库方法,如save、delete等。此外,我们还可以编写自己的方法,而无需按方法名称约定进行任何实现。我的问题是,
实体类

public class Movie {

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

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

存储库类

public interface MovieRepository extends JpaRepository<Movie, Long> {

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

}

jvm如何知道这个方法的实现?因为我们不执行这个。
有人能帮我吗?

68bkxrlz

68bkxrlz1#

它是spring数据,它在运行时使用代理机制生成适当的示例,然后自动连接到适当的地方,在这些地方,您已经提供了示例变量,例如,在您的服务方法中。如果您在ide中调试代码-您可以看到该示例的所有详细信息,如下所示
要了解spring如何创建和使用运行时生成的代理的更多信息,可以参考以下文档

相关问题