通过花时间从表中获取记录来休眠jpa订单

通过花时间从表中获取记录来休眠jpa订单,jpa,spring-data-jpa,Jpa,Spring Data Jpa,我试着在某个日期后取出记录,并在ASC中订购它们。我使用分页的概念来显示结果。下面是我的jpa电话 @Query("SELECT a FROM JournalEntryEntity a WHERE a.createdOn>=:inputValue order by transactionIdentifier") Page<JournalEntryEntity> getModifiedJournalEntryFromDB(@Param("inputValue") LocalDat

我试着在某个日期后取出记录,并在ASC中订购它们。我使用分页的概念来显示结果。下面是我的jpa电话

@Query("SELECT a FROM JournalEntryEntity a WHERE a.createdOn>=:inputValue order by transactionIdentifier")
Page<JournalEntryEntity> getModifiedJournalEntryFromDB(@Param("inputValue") LocalDateTime inputValue, Pageable pageRequest);
@Query(“从JournalEntryEntity a中选择a,其中a.createdOn>=:按事务标识符输入值顺序”)
Page getModifiedJournalEntryFromDB(@Param(“inputValue”)LocalDateTime inputValue,Pageable pageRequest);
所以,如果我为Pageable提供从1开始的索引和大小为200的索引,那么加载数据会花费很多时间

@Entity
@Table(name = "thoth_journal_entries")
public class JournalEntryEntity {

  @Id
  @Column(name = "transaction_identifier")
  private String transactionIdentifier;

  @Column(name = "date_bucket")
  private String dateBucket;

  @Column(name = "transaction_date")
  @Convert(converter = LocalDateTimeConverter.class)
  private LocalDateTime transactionDate;
  @Column(name = "transaction_type")
  private String transactionType;
  @Column(name = "clerk")
  private String clerk;
  @Column(name = "note")
  private String note;

  @OneToMany(targetEntity = DebtorAndCreditorType.class, cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
  @JoinColumn(name = "transaction_identifier", referencedColumnName = "transaction_identifier",nullable = false)
  private Set<DebtorAndCreditorType> debtorsAndCreditorsType;

  @Column(name = "state")
  private String state;
  @Column(name = "message")
  private String message;
  @Column(name = "created_on")
  @Convert(converter = LocalDateTimeConverter.class)
  private LocalDateTime createdOn;
  @Column(name = "created_by")
  private String createdBy;
  @Column(name = "entity_id")
  private String entityId;
  @Column(name = "entity_name")
  private String entityName;
  @Column(name = "entity_event")
  private String entityEvent;
  @Column(name = "currency")
  private String currency;

  @Column(name = "manual_entry")
  private boolean isManualEntry;

//getter....
//sett
@实体
@表(name=“thoth\u日记账分录”)
公共类新闻实体{
@身份证
@列(name=“事务\标识符”)
私有字符串事务标识符;
@列(name=“date\u bucket”)
私有字符串日期桶;
@列(name=“交易日”)
@Convert(converter=LocalDateTimeConverter.class)
私有LocalDateTime事务日期;
@列(name=“交易类型”)
私有字符串事务类型;
@列(name=“clerk”)
私人弦乐事务员;
@列(name=“note”)
私人弦乐;
@OneToMany(targetEntity=debortorAndCreditorType.class,cascade=CascadeType.ALL,orphanRemoving=true,fetch=FetchType.EAGER)
@JoinColumn(name=“transaction\u identifier”,referencedColumnName=“transaction\u identifier”,nullable=false)
私人设置债务人和贷方类型;
@列(name=“state”)
私有字符串状态;
@列(name=“message”)
私有字符串消息;
@列(name=“已创建”)
@Convert(converter=LocalDateTimeConverter.class)
私有LocalDateTime-createdOn;
@列(name=“创建人”)
创建的私有字符串;
@列(name=“entity\u id”)
私有字符串entityId;
@列(name=“实体名称”)
私有字符串entityName;
@列(name=“实体\事件”)
私有字符串实体事件;
@列(name=“currency”)
私人字符串货币;
@列(name=“手动输入”)
私有布尔运算;
//盖特。。。。
//塞特

呃……

如果没有order by子句会发生什么?时间差是什么?我猜事务标识符不是自动增量值,这就是为什么加载数据需要时间。如果不是这样,那么如何尝试删除时间。如果记录大小为4000,则在添加表的索引概念后会出现超时错误。这是wor很好。索引后40000条记录需要10秒