Spring Data JPA удаляет собственное исключение запроса
у меня естьUser
сущность иRole
юридическое лицо. Отношения определяются так:
@OneToMany
@JoinTable(name="USER_ROLES", inverseJoinColumns=@JoinColumn(name="ROLE_ID"))
private List roles = null;
Теперь, когда я удаляю роль, мне нужно удалить роль у всех пользователей, у которых есть эта роль. Обычно тысделать что-то вроде этого, просмотрев всех пользователей с этой ролью, удалив роль из списка и сохранив пользователя. Однако, когда может быть более миллиона пользователей, я неЯ не хочу зацикливаться на этом множестве объектов в приложении. Так что я'я хочу использовать собственный запрос для удаления строк изUSER_ROLES
присоединиться к столу. Я попытался добавить это в свой репозиторий:
@Query(value="DELETE FROM user_roles WHERE role_id = ?1", nativeQuery=true)
public void deleteRoleFromUsersWithRole(Long roleId);
Однако, когда я делаю это, я вижу следующее в журналах:
[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 = ?")
Я нене понимаю, чтоNo results were returned by the query.
говорит. Запись действительно удаляется из базы данных, но это исключение вызывает взрыв.
Может кто-нибудь, пожалуйста, скажите мне, что яя здесь не так?