删除使用spring-security-core类的用户对象时的完整性约束违规

Ima*_*man 5 grails spring-security

我在我的应用程序中使用spring-security-core插件.我的用户类扩展了SecUser,没有其他任何可能与众不同的尝试当我尝试删除用户时,我收到以下错误

| 错误2012-01-02 19:54:57277 [ "HTTP的生物8080" -exec-10] ERROR util.JDBCExceptionReporter -参照完整性约束违规:"FK6630E2AB3FFA32A:PUBLIC.SEC_USER_SEC_ROLE外键(SEC_USER_ID)参考文献PUBLIC.SEC_USER( ID)"; SQL语句:从sec_user中删除id =?和版本=?[23003-147]
| 错误2012-01-02 19:54:57,294 ["http-bio-8080"-exec-10]错误events.PatchedDefaultFlushEventListener - 无法将数据库状态与会话同步

通过JdbcSQLException引起:参照完整性约束违规: "FK6630E2AB3FFA32A:PUBLIC.SEC_USER_SEC_ROLE外键(SEC_USER_ID)参考文献PUBLIC.SEC_USER(ID)"; SQL语句:从sec_user中删除id =?和版本=?[23003-147]

任何想法为什么我得到整体约束违规

Anu*_*ora 9

你得到完整性冲突异常的原因是因为春天的安全创建SEC_USER和SEC_ROLE表之间的联接表SEC_USER_SEC_ROLE(用户可以拥有多个角色,反之亦然)的事实.要删除用户对象,可以使用以下代码:

    Collection<SecUserSecRole> userRoles = SecUserSecRole.findAllBySecUser(user);
    userRoles*.delete();
    user.delete();
Run Code Online (Sandbox Code Playgroud)