SQL 本机查询以获取 X 中到期日期的对象列表

SQL native query to get a list of objects where date expiring in X

我有一些“卡片”对象:

@Entity
@Table(name = "card", schema = "public")
@Data
@EqualsAndHashCode(callSuper = false)
public class Card  {
    @Id
    @GeneratedValue
    private Long id;
    
    @Column(name="name")
    private String name;

    @Column(name="scope_time_limit")
    private LocalDateTime expireDate;
}

我想准备一些本机查询,以便根据我指定的日期获取到期卡列表。我有这个方法:

 List<Card> getExpiringCards(Integer numberOfDaysToExpiringCard) {
        return cardRepository.getExpiringCardsByDay(numberOfDaysToExpiringAgreement);
    }

什么是最佳查询?我在考虑本机查询。

提前致谢。

你缺少一些关于你在使用什么以及你如何访问你的数据库等的细节。但是,我想展示一个使用 Spring 数据的例子只是为了粗略的想法。

您的存储库:

public interface CardRepository extends JpaRepository<Card, Integer> {
   List<Card> findByExpireDateAfter(LocalDateTime expireDate);
}

在您的服务中的某处或您使用它的任何地方:

  @Autowired
  CardRepository cardRepository;  

  List<Card> getCardsWillBeExpiredInDays(int days) {
    LocalDateTime someDaysLater = LocalDateTime.now().plusDays(days);
    return cardRepository.findByCreatedAfter(someDaysLater);
  }