我有一个LocalDate
属性为created
的交易:
private LocalDate created;
我还收到以下查询,以从表transaction
中检索每个日期。
SELECT DISTINCT t.created FROM Transaction t
但这只是给了我所有日期,我正在将这些日期映射到找到的所有月份。
public List<Month> findAllUsesdMonth() {
return getEm().createNamedQuery(Transaction.FIND_ALL_MONTH, LocalDate.class).getResultList().stream().map(LocalDate::getMonth)
.collect(Collectors.toList());
}
这显然导致重复的月份,因为我选择了不同的日期而不是不同的月份。一种解决方法是使用Set而不是List。
我只想检索JPQL查询中的月份,而不是之后映射它们。有可能这样做吗?
答案 0 :(得分:0)
日期格式:yyyy-MM-dd HH:mm:ss
查询:SELECT t FROM Transaction t GROUP BY (SUBSTRING(t.created, 6, 7))
通过将此称为NamedQuery
,您将获得不同的月份。