From 6b748489dcc134e19b9c2af4c3a7e70cfa7d9bc3 Mon Sep 17 00:00:00 2001 From: MK13 Date: Mon, 10 Jun 2019 22:02:30 +0200 Subject: [PATCH] Use JPA query to query candidates for recurring transactions due today Previously the query was autogenerated but the WHERE clause was wrong, because the braces where at the wrong places and thus the query matched wrong data. --- .../java/de/financer/dba/RecurringTransactionRepository.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/de/financer/dba/RecurringTransactionRepository.java b/src/main/java/de/financer/dba/RecurringTransactionRepository.java index 5226f92..712bff2 100644 --- a/src/main/java/de/financer/dba/RecurringTransactionRepository.java +++ b/src/main/java/de/financer/dba/RecurringTransactionRepository.java @@ -2,7 +2,9 @@ package de.financer.dba; import de.financer.model.Account; import de.financer.model.RecurringTransaction; +import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.query.Param; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -12,6 +14,7 @@ import java.time.LocalDate; public interface RecurringTransactionRepository extends CrudRepository { Iterable findRecurringTransactionsByFromAccountOrToAccount(Account fromAccount, Account toAccount); + @Query("SELECT rt FROM RecurringTransaction rt WHERE rt.deleted = false AND (rt.lastOccurrence IS NULL OR rt.lastOccurrence >= :lastOccurrence)") Iterable findByDeletedFalseAndLastOccurrenceIsNullOrLastOccurrenceGreaterThanEqual(LocalDate lastOccurrence); Iterable findByDeletedFalse();