2012-01-02 10 views
5

私はアプリケーションでspring-security-coreプラグインを使用します。 私のユーザークラスはSecUserを拡張し、他には何も私は次のエラーspring-security-coreクラスを使用するユーザーオブジェクトを削除する際の整合性制約違反

を取得し、ユーザーを削除しようとすると、通常 の外にすることができることを行われません| "http-bio-8080" -exec-10]エラーutil.JDBCExceptionReporter - 参照整合性制約違反: "FK6630E2AB3FFA32A:PUBLIC.SEC_USER_SEC_ROLE FOREIGN KEY(SEC_USER_ID)REFERENCES PUBLIC.SEC_USER(エラー:2012-01-02 19:54:57,277) ID)」; SQL文: sec_userからの削除where id =?バージョン=? [23003-147]
|エラー "" http-bio-8080 "-exec-10]エラーevent.PatchedDefaultFlushEventListener - セッションとデータベース状態を同期できませんでした。

原因:参照整合性制約違反: FK6630E2AB3FFA32A:PUBLIC.SEC_USER_SEC_ROLE FOREIGN KEY(SEC_USER_ID)を参照してください。PUBLIC.SEC_USER(ID) "; SQL文: sec_userからの削除where id =?バージョン=? [23003-147]

私はあなたが整合性違反の例外を取得している理由が原因春のセキュリティはSEC_USERとの間の接合テーブルSEC_USER_SEC_ROLEを作成しているという事実であるintegrtiy制約違反

答えて

9

を取得する理由を任意のアイデアSEC_ROLEテーブル(ユーザは複数のロールを持つことができ、その逆も可能です)。ユーザーオブジェクトを削除するには、次のコードを使用します。

Collection<SecUserSecRole> userRoles = SecUserSecRole.findAllBySecUser(yourUserObject); 
    userRoles*.delete(); 
    user.delete(); 
+0

多くの感謝:)それは完璧に働いた – Iman

+0

ありがとう!それも私のために働いた! – JPerk

関連する問題