Java 如何向Hibernate查询注释添加限制?
我在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
@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();
}