首页 > 解决方案 > 通过花时间从表中获取记录来休眠 jpa 订单

问题描述

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

@Query("SELECT a FROM JournalEntryEntity a WHERE a.createdOn>=:inputValue order by transactionIdentifier")
Page<JournalEntryEntity> 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

呃……

标签: jpaspring-data-jpa

解决方案


推荐阅读