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