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.
This commit is contained in:
2019-06-10 22:02:30 +02:00
parent 781f0e0ac9
commit 6b748489dc

View File

@@ -2,7 +2,9 @@ package de.financer.dba;
import de.financer.model.Account; import de.financer.model.Account;
import de.financer.model.RecurringTransaction; import de.financer.model.RecurringTransaction;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -12,6 +14,7 @@ import java.time.LocalDate;
public interface RecurringTransactionRepository extends CrudRepository<RecurringTransaction, Long> { public interface RecurringTransactionRepository extends CrudRepository<RecurringTransaction, Long> {
Iterable<RecurringTransaction> findRecurringTransactionsByFromAccountOrToAccount(Account fromAccount, Account toAccount); Iterable<RecurringTransaction> 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<RecurringTransaction> findByDeletedFalseAndLastOccurrenceIsNullOrLastOccurrenceGreaterThanEqual(LocalDate lastOccurrence); Iterable<RecurringTransaction> findByDeletedFalseAndLastOccurrenceIsNullOrLastOccurrenceGreaterThanEqual(LocalDate lastOccurrence);
Iterable<RecurringTransaction> findByDeletedFalse(); Iterable<RecurringTransaction> findByDeletedFalse();