Spring JPA Repository Transaktionalität

1 kurze Frage zur Transaktionalität von JPA-Repositories im Frühjahr. Ich habe einen Dienst, der nicht als Transaktionsdienst gekennzeichnet ist und die Spring JPA-Repository-Methode @ aufruf

userRegistrationRepository.deleteByEmail(email);

Und es ist definiert als

@Repository
public interface UserRegistrationRepository extends JpaRepository<UserRegistration, Long> {

    UserRegistration findByEmail(String email);

    void deleteByEmail(String email);

}

Das Problem ist, dass es mit "@ fehlschläNo EntityManager mit der tatsächlichen Transaktion für den aktuellen Thread verfügbar - Der Aufruf zum Entfernen kann nicht zuverlässig verarbeitet werden. verschachtelte Ausnahme ist javax.persistence.TransactionRequiredException "Ausnahme.

Ok, ich kann es lösen, indem ich den Dienst markiereode deleteByEmail (..) -Methode als Transaktion, aber ich kann einfach nicht verstehen, warum es jetzt abstürzt. Die Spring-Dokumentation besagt ausdrücklich, dass "CRUD-Methoden für Repository-Instanzen sind standardmäßig transaktionell. "http: //docs.spring.io/spring-data/jpa/docs/current/reference/html/#transaction), aber anscheinend ist dies nicht ... Also bezieht sich diese Aussage nur auf Mitglieder vonCrudRepository?

ps: das ist für Spring Data JPA 1.9.4

Antworten auf die Frage(2)

Ihre Antwort auf die Frage