Java 限制Spring数据JPA中的结果数

Java 限制Spring数据JPA中的结果数,java,spring,postgresql,spring-mvc,jpa,Java,Spring,Postgresql,Spring Mvc,Jpa,我的数据库中有20多个表,我需要一个方法从表中获取所有未删除的行。因此,我编写了以下接口: @NoRepositoryBean public interface CommonRepositry<T, ID extends Serializable> extends CrudRepository<T, UUID>{ List<T> findByIsDeleted(boolean isDeleted); } 随着表的大小不断增加,我想对方法返回的结果数量

我的数据库中有20多个表,我需要一个方法从表中获取所有未删除的行。因此,我编写了以下接口:

@NoRepositoryBean
public interface CommonRepositry<T, ID extends Serializable> extends CrudRepository<T, UUID>{
    List<T> findByIsDeleted(boolean isDeleted);
}
随着表的大小不断增加,我想对方法返回的结果数量设置一个可调整的限制。有两种方法可以做到这一点,我对这两种方法都有意见:

从一开始,我就应该这样做:

List<User> findTop1000ByIsDeleted(boolean isDeleted);

问题:如何获取表名?我的模型类名到表名具有简单的CamelCase到camel_大小写映射。但是如何从
T
获取模型类名?

问题1:您可以向查询传递第二个参数,称为Pageable

List findbyisdelected(boolean isDeleted,Pageable Pageable)

Pageable
是一个接口,但您可以使用
PageRequest
实现。创建一个
PageRequest
需要两件事,页码和大小(意味着要获取多少行)。当然,在您的情况下,页码是0,应该通过读取属性文件中的值来设置大小

问题2:您可以将表名外部化为只包含常量值的类。您可以在实体类和此处的
@表
注释中使用这些值


更多阅读:

问题1:您可以向查询传递第二个参数,称为Pageable

List findbyisdelected(boolean isDeleted,Pageable Pageable)

Pageable
是一个接口,但您可以使用
PageRequest
实现。创建一个
PageRequest
需要两件事,页码和大小(意味着要获取多少行)。当然,在您的情况下,页码是0,应该通过读取属性文件中的值来设置大小

问题2:您可以将表名外部化为只包含常量值的类。您可以在实体类和此处的
@表
注释中使用这些值

更多阅读:

List<User> findTop1000ByIsDeleted(boolean isDeleted);
@Query(value = "SELECT * FROM table_name" + " WHERE is_deleted = :isDeleted LIMIT 1000;", nativeQuery = true)
List<T> findByIsDeleted(@Param("isDeleted")boolean isDeleted);