java / intermediate
Snippet
Ausführen von Bulk-Updates mit @Modifying und @Query
Bei der Durchführung von Aktualisierungen oder Löschungen über JPQL in Spring Data JPA ist die @Modifying-Annotation erforderlich. Dies informiert das Framework, dass die Abfrage eine 'execute'-Operation und kein 'select' ist, was eine korrekte Verwaltung des Persistence Contexts ermöglicht.
snippet.java
1
2
3
4
5
6
@Repositorypublic interface UserRepository extends JpaRepository<User, Long> {@Modifying@Query("UPDATE User u SET u.status = :status WHERE u.lastLogin < :date")int updateStatusForInactiveUsers(String status, LocalDateTime date);}
spring
Erklärung
1
@Modifying
Signalisiert, dass die Abfrage den Datenbankzustand ändert (INSERT, UPDATE oder DELETE).
2
@Query("UPDATE User u...")
Definiert die benutzerdefinierte JPQL-Anweisung für die Bulk-Update-Operation.