Java 如何向Hibernate查询注释添加限制?

Java 如何向Hibernate查询注释添加限制?,java,mysql,hibernate,jdbc,spring-data-jpa,Java,Mysql,Hibernate,Jdbc,Spring Data Jpa,我在Java Hibernate中有这个 @Query("SELECT dirPar FROM DirectiveParagraph dirPar, Directive dir " + "WHERE dirPar.directive = dir " + "AND dir.txtDirCode = :txtDirCode "); List<DirectiveParagraph> getByName(@Param("txtDirCode") Strin

我在Java Hibernate中有这个

@Query("SELECT dirPar FROM DirectiveParagraph dirPar, Directive dir  "
        + "WHERE dirPar.directive = dir "
        + "AND dir.txtDirCode = :txtDirCode ");

List<DirectiveParagraph> getByName(@Param("txtDirCode") String name, @Param("page") int page ,@Param("size") int size);

如何将限制添加到上面的@Query annotation

限制在HQL中不受支持。要设置大小,可以使用setMaxResults。要设置起点,请使用setFirstResult

Query q = session.createQuery("...");
q.setFirstResult(10);
q.setMaxResults(10);

如果您不想这样做,则必须使用createSQLQuery来编写本机sql查询,而不是hql。

您可以尝试向getByName方法添加可分页参数

    @Query("SELECT dirPar FROM DirectiveParagraph dirPar, Directive dir  "
    + "WHERE dirPar.directive = dir "
    + "AND dir.txtDirCode = :txtDirCode ");
    Page<DirectiveParagraph> getByName(@Param("txtDirCode") String name, Pageable page);
@Query(“从Directive段落dirPar中选择dirPar,Directive dir”
+“其中dirPar.directive=dir”
+“和dir.txtDirCode=:txtDirCode”);
页面getByName(@Param(“txtDirCode”)字符串名称,可分页页面);
下面是一个示例方法调用:

    public void someMethod(){
        PageRequest pageR = new PageRequest(10,10);
        Page<DirectiveParagraph> result = directiveParagraphRepository.getByName("txtDirCode",pageR);
        List<DirectiveParagraph> resultList = result.getContent();
    }
public void someMethod(){
PageRequest pageR=新的PageRequest(10,10);
页面结果=directiveParagraphRepository.getByName(“txtDirCode”,pageR);
List resultList=result.getContent();
}

Op特别询问了一个使用@Query注释的案例。
    public void someMethod(){
        PageRequest pageR = new PageRequest(10,10);
        Page<DirectiveParagraph> result = directiveParagraphRepository.getByName("txtDirCode",pageR);
        List<DirectiveParagraph> resultList = result.getContent();
    }