JAVA种DAO层不知道是通过何种方式执行的SQL

public interface TaskProgressDao extends JpaRepository<TaskProgress, Long>, JpaSpecificationExecutor<TaskProgress> {

    List<TaskProgress> findByTaskIdOrderByCreateTimeDesc(Long id);


    TaskProgress findTopByTaskIdOrderByCreateTimeDesc(Long id);

    @Query("select tp from TaskProgress tp where tp.taskId = ?1 and tp.userId = ?2 and tp.rate = ?3 order by tp.createTime desc ")
    List<TaskProgress> queryProgress(Long taskId, String userId, Integer value);
}

像下面最后这个,通过 @Query 注解 执行的SQL
但是上面两个 找不到是如何执行的
请大神帮忙参考一下
以findByTaskIdOrderByCreateTimeDesc为例
这种可以通过方法名称就大概知道这个SQL语句
以传入的TaskId为参数条件
以CreateTime为排序条件desc倒序
我可以看明白,猜到SQL语句是怎样的
但是我想知道程序是通过什么知道SQL语句并且执行的