ステートメントを実行することができなかった; SQL [N /];制約[NULL](多くのシートのSQL文を実行するために与えることができません)

マルチテーブルの削除エラー:

org.springframework.dao.DataIntegrityViolationException:文を実行できませんでした。SQL [N / A]。制約[NULL]。ネストされた例外はorg.hibernate.exception.ConstraintViolationExceptionです:ステートメントを実行することができませんでした

OU \のjavax \エル\ javax.el-APIの\ 2.2.4 \ javax.el-API-2.2.4.jar; E:\ local_repository \ repository_pinyougou \ orgの\ GlassFishのウェブ\ \ javax.el \ 2.2.4 \ javaxの.EL-2.2.4.jar」com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.wsc.core.onetone.ManyToMany、は、deleteuserの
log4jは:いいえアペンダをロガー(org.springframeworkのために見つかりませんでしたWARN。 。test.context.junit4.SpringJUnit4ClassRunner)
のlog4j:WARNのlog4jシステムを正しく初期化してください。
userid1_7_1_ようrole1_.userid user_id1_6_0_、password2_6_0_としてuser0_.password、username3_6_0_としてuser0_.username、としてuser0_.user_id選択し、roleid2_7_1_としてrole2_.role_id、role_id1_5_2_としてrole2_.role_id、memo2_5_2_としてrole2_.memo、role_nam3_5_2_としてrole2_.role_name:休止状態外側左ユーザーuser0_からuser0_.user_id = role1_.useridにUSER_ROLE role1_を外部結合左role1_.roleid = role2_.role_idどこuser0_.user_id =上の役割role2_に参加?
休止状態:から削除USER_ROLEユーザーID =?
休止状態:ROLE_ID =役割から削除しますか?
休止状態:ROLE_ID =役割から削除しますか?

 

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:によって引き起こさ親行を削除または更新できません:外部キー制約は、( `shop`.`user_role`、CONSTRAINT` FKbo5ik0bthje7hum554xb17ry6` FOREIGN KEY( `roleid`)REFERENCES`失敗role`( `role_id`))

分析:あなたは、単一のテーブルデータの誤りを削除したいです 

テーブルの主な外部キー制約の真ん中を削除するには、あなたが他の文のテーブルを実行することができます。私のエラーが削除されたときの

中級ユーザーの役割テーブルテーブルテーブル3つのテーブル

、外部キー制約、SQL文を実行することはできません。ルールのシーケンスを削除します。メインテーブルの実行中またはテーブルから中間テーブルを削除します(外部キー制約)

ソリューション:

  表プラスに @ManyToMany(mappedBy = "ロール"、FETCH = FetchType.EAGER) 

  主テーブルプラス@ManyToMany(=カスケードにおけるCascadeType.ALL、= FetchType.EAGER FETCH

結果:

1  com.wsc.core.onetone.ManyToMany、は、deleteuser
 2 log4jは:なしアペンダは見つかりませんでしたWARN ためロガー(org.springframework.test.context.junit4.SpringJUnit4ClassRunner)。
3休止状態:選択 user0_.user_id として user_id1_6_0_、user0_.password として password2_6_0_、user0_.username として role1_.userid username3_6_0_、として userid1_7_1_は、role2_.role_id として roleid2_7_1_、role2_.role_id として role_id1_5_2_、role2_.memo として memo2_5_2_、role2_.role_name として role_nam3_5_2_ から外側左user0_.user_id = role1_.useridに外部結合USER_ROLE role1_を残したユーザのuser0_はrole1_.roleid = role2_.role_id上の役割role2_に参加どこ user0_.user_id =?
4休止状態:選択 user0_.roleid として roleid2_7_0_、user0_.userid として userid1_7_0_、user1_.user_id として user_id1_6_1_、user1_.password として password2_6_1_、user1_.username として username3_6_1_ から USER_ROLE user0_インナーuser0_.userid = user1_.user_idにユーザuser1_に参加する場合 user0_ .roleid =?
5休止状態:選択し role0_.userid としてuserid1_7_0_、role0_.roleid として、roleid2_7_0_ role1_.role_id として role1_.memo、role_id1_5_1_ として、memo2_5_1_ role1_.role_name として role_nam3_5_1_をから role0_.roleid = role1_.role_idにUSER_ROLE role0_インナー参加役割role1_ どこ role0_.userid =?
6休止状態:選択 user0_.roleid として roleid2_7_0_、user0_.userid として userid1_7_0_、user1_.user_id として user_id1_6_1_、user1_.password として password2_6_1_、user1_.username として username3_6_1_ からUSER_ROLE user0_インナーはuser0_.userid = user1_.user_idにユーザーuser1_に参加どこ user0_.roleid =?
7  
8  
9 Hibernateは:= USER_ROLEユーザーIDから削除しますか?
10休止状態:どこのuser_id =ユーザから削除しますか?      //仅执行两个删除语句、删除单表ID OK !!!
 11  
12  
13  のlog4j:WARN適切にlog4jのシステムを初期化してください。
14の 
15の終了コードで仕上げプロセス0

2 .... 2つのテーブルを削除する:あなたは、すべての外部キー制約は、[OK]を実行し、データを削除することを存在して削除する必要があります。

  中間テーブルの     制約ID(2表) 

(同上プライマリ・テーブル)B(テーブルからID)

       2 1

       1 2

       1 3   

だから、:ID = 2を削除するには、ID = ID 1はまた、= 3が削除されて削除する必要があります。

実行方法:(1)、(2)、(3)、全体が削除された削除削除を削除します。

おすすめ

転載: www.cnblogs.com/wangshichang/p/11390933.html