let\'s assume we have a Spring Data repository interface with a custom method...
@Modifying
@Transactional
@Query(\"UPDATE MyEntity SET deletedAt = CURRENT_T
There are two ways to do that:
The JPA idiomatic way to do this is to load the entities first, then changing them using Java code.
Doing this in a transaction will flush the changes to the database.
If you insist on doing a batch update you need to mark the entities as part of the update. Maybe with a timestamp, maybe the update itself already marks them. And then you reload them using a select statement that uses the marker set during the update.
Note that you have to ensure that the entities don't exist yet in your EntityManager, otherwise you will keep the old state there. This is the purpose of @Mdoifying(clearAutomatically=true) recommended by other answers.