SQL本机查询以获取日期在X中到期的对象列表
Posted
技术标签:
【中文标题】SQL本机查询以获取日期在X中到期的对象列表【英文标题】:SQL native query to get a list of objects where date expiring in X 【发布时间】:2021-12-27 11:52:29 【问题描述】:我有一些“卡片”对象:
@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);
什么是最佳查询?我在考虑原生查询。
提前致谢。
【问题讨论】:
minimal reproducible example 是询问 SQL 问题的良好开端。 【参考方案1】:您缺少一些关于您使用什么以及如何访问您的数据库等的详细信息。但是,我想展示一个使用 Spring Data 的示例,只是为了粗略的想法。
您的存储库:
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);
【讨论】:
以上是关于SQL本机查询以获取日期在X中到期的对象列表的主要内容,如果未能解决你的问题,请参考以下文章