-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSystemLogRepository.java
More file actions
30 lines (23 loc) · 1.67 KB
/
Copy pathSystemLogRepository.java
File metadata and controls
30 lines (23 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package ch.fhnw.timerecordingbackend.repository;
import ch.fhnw.timerecordingbackend.model.SystemLog;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
// import java.awt.print.Pageable; // Entfernt, da nicht direkt genutzt für neue Methode
import java.time.LocalDateTime;
import java.util.List; // Import für List
public interface SystemLogRepository extends JpaRepository<SystemLog, Long> {
List<SystemLog> findByUserId(Long userId);
List<SystemLog> findByUserEmail(String email);
List<SystemLog> findByActionContaining(String action);
List<SystemLog> findByTimestampBetween(LocalDateTime start, LocalDateTime end);
List<SystemLog> findByTargetEntityAndTargetId(String targetEntity, Long targetId);
@Query("SELECT l FROM SystemLog l WHERE LOWER(l.action) LIKE LOWER(CONCAT('%', :searchTerm, '%')) OR LOWER(l.details) LIKE LOWER(CONCAT('%', :searchTerm, '%'))")
List<SystemLog> searchLogs(@Param("searchTerm") String searchTerm);
// @Query("SELECT l FROM SystemLog l ORDER BY l.timestamp DESC") // Pageable war hier falsch typisiert
// List<SystemLog> findLatestLogs(org.springframework.data.domain.Pageable pageable); // Korrekter Typ für Spring Data Pageable
List<SystemLog> findByUserIdAndTimestampBetween(Long userId, LocalDateTime start, LocalDateTime end);
long deleteByTimestampBefore(LocalDateTime timestamp);
// NEUE METHODE zum Finden von Logs nach userId, action und processedStatus
List<SystemLog> findByUserIdAndActionAndProcessedStatusOrderByTimestampDesc(Long userId, String action, String processedStatus);
}