Spring Data JPA usuwa wyjątek rzucania rodzimych zapytań

mamUser podmiot i aRole jednostka. Relacja jest zdefiniowana w ten sposób:

@OneToMany
@JoinTable(name="USER_ROLES", inverseJoinColumns=@JoinColumn(name="ROLE_ID"))
private List<Role> roles = null; 

Teraz, gdy usuwam rolę, muszę usunąć rolę od wszystkich użytkowników, którzy mają tę rolę. Zwykle robisz coś takiego, sprawdzając wszystkich użytkowników z tą rolą, usuwając rolę z listy i zapisując użytkownika. Jednak, gdy może być ponad milion użytkowników, nie chcę zapętlać wielu podmiotów w aplikacji. Chcę więc użyć zapytania rodzimego do usunięcia wierszy zUSER_ROLES dołączyć do stołu. Próbowałem dodać to do mojego repozytorium:

@Query(value="DELETE FROM user_roles WHERE role_id = ?1", nativeQuery=true)
public void deleteRoleFromUsersWithRole(Long roleId);

Jednak gdy to robię, widzę następujące informacje w dziennikach:

[EL Fine]: sql: 2013-11-02 14:27:14.418--ClientSession(707349235)--Connection(2096606500)--Thread(Thread[http-bio-8080-exec-4,5,main])--DELETE FROM user_roles WHERE role_id = ?
   bind => [1000110139999999953]
[EL Fine]: sql: 2013-11-02 14:27:14.478--ClientSession(707349235)--Thread(Thread[http-bio-8080-exec-4,5,main])--SELECT 1
[EL Warning]: 2013-11-02 14:27:14.482--UnitOfWork(1795045370)--Thread(Thread[http-bio-8080-exec-4,5,main])--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.1.v20121003-ad44345): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: No results were returned by the query.
Error Code: 0
Call: DELETE FROM user_roles WHERE role_id = ?
    bind => [1000110139999999953]
Query: DataReadQuery(sql="DELETE FROM user_roles WHERE role_id = ?")

Nie rozumiem coNo results were returned by the query. mówi. Rekord jest usuwany z bazy danych, ale ten wyjątek powoduje wysadzenie wszystkiego.

Czy ktoś może mi powiedzieć, co tu robię źle?

questionAnswers(2)

yourAnswerToTheQuestion