diff --git a/backend/src/main/java/de/hft/geotime/repositories/RecordRepository.java b/backend/src/main/java/de/hft/geotime/repositories/RecordRepository.java index fb715ff..04cb836 100644 --- a/backend/src/main/java/de/hft/geotime/repositories/RecordRepository.java +++ b/backend/src/main/java/de/hft/geotime/repositories/RecordRepository.java @@ -45,7 +45,11 @@ public interface RecordRepository extends PagingAndSortingRepository current_date") + @Query("SELECT record from TimeRecord record " + + "where record.account.user.username = :#{principal} " + + "AND record.enddate > current_date " + + "AND record.enddate < current_date+1" + ) Page today(Pageable pageable); @RestResource(rel = "openEntries", path = "openEntries") diff --git a/backend/src/main/resources/data.sql b/backend/src/main/resources/data.sql index 7fb7b97..bfb9c6d 100644 --- a/backend/src/main/resources/data.sql +++ b/backend/src/main/resources/data.sql @@ -34,6 +34,8 @@ INSERT INTO time_record (id, enddate, startdate, `type`, account_id) VALUES (6, '2020-05-30 23:00:00', '2020-05-30 22:00:00', 1, 1), (7, '2020-05-31 01:00:00', '2020-05-31 00:00:00', 1, 1), (8, '2020-05-31 04:00:00', '2020-05-31 02:00:00', 1, 1), - (9, '2020-05-31 16:00:00', '2020-05-31 12:00:00', 1, 1); + (9, '2020-05-31 16:00:00', '2020-05-31 12:00:00', 1, 1), + (10, '2020-06-14 16:00:00', '2020-06-14 12:00:00', 1, 1), + (11, '2020-06-15 16:00:00', '2020-06-15 12:00:00', 1, 1); SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file diff --git a/documentation/parts/backend.tex b/documentation/parts/backend.tex index 72f9ce7..c94c8af 100644 --- a/documentation/parts/backend.tex +++ b/documentation/parts/backend.tex @@ -104,7 +104,7 @@ Werden nun noch weitere Funktionalitäten in den Repositories benötigt, können diese entweder selbst implementiert werden, oder durch gut ausgewählte Funktionsdefinitionen im Interface der Ressource deklariert werden. Spring kann die Implementierung dann aus dem Namen und den Parametern der Funktion ableiten. Als unser Maximalbeispiel dient hier das RecordRepository. - \lstinputlisting[language=Java,linerange={14-27,38-41,47-54},caption=RecordRepository,label=code:record-repository]{../backend/src/main/java/de/hft/geotime/repositories/RecordRepository.java} + \lstinputlisting[language=Java,linerange={14-27,38-41,47-58},caption=RecordRepository,label=code:record-repository]{../backend/src/main/java/de/hft/geotime/repositories/RecordRepository.java} In diesem Repository befinden sich diverse verschiedene Methoden, wie Datenoperationen definiert werden können, ohne dass sie aktiv implementiert werden müssen. Es beginnt mit der Funktion "findAllByStartdateBetween". Dieser Name kann direkt als Java Hibernate Statement interpretiert werden und nimmt als Parameter zwei Datumsangaben entgegen und eine Page. Die zwei Datumsangaben werden aus dem Schlüsselwort "Between" abgeleitet. Damit es sich aber um echt vergleichbare Daten handelt, müssen diese nach einem bestimmten Schema geparsed werden. Dieses Schema ist in der "DateTimeFormat" Annotation angegeben. Als Rückgabe liefert diese Funktion dann eine Menge aller Einträge zwischen diesen Daten.