1

ここに同様の質問がありますが、役に立ちませんでした

私は古典的な多対多の関係を持っていますOrganisme| Organisme_groupe| Groupe

Organisme削除するときは保持したい、Groupeまたはその逆。実際、Organismeを削除すると、添付されているGroupeも削除されます。

私が理解していることから、カスケードアクションは子テーブル(ここでは中間テーブル)よりも遠くには行かないので、私は少し混乱しています。

生物

  CREATE TABLE IF NOT EXISTS `organisme` (
  `ORGANISME_ID` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,  
  `TYPE_ORGANISME` varchar(128) NOT NULL DEFAULT '',
  `NAME` varchar(80) DEFAULT ''  
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

グループ

CREATE TABLE IF NOT EXISTS `groupe` (
  `GROUPE_ID` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
  `NAME_GROUPE` varchar(50) NOT NULL DEFAULT ''  
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Organisme_groupe

 CREATE TABLE IF NOT EXISTS  `organisme_groupe`(
      `ORGANISME_ID` int(10) NOT NULL,
      `GROUPE_ID` int(10) NOT NULL,
       PRIMARY KEY (ORGANISME_ID, GROUPE_ID)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

制約

ALTER TABLE `organisme_groupe`
  ADD CONSTRAINT `FK_organisme_groupe_1` FOREIGN KEY (`ORGANISME_ID`) REFERENCES `organisme` (`ORGANISME_ID`)  ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_organisme_groupe_2` FOREIGN KEY (`GROUPE_ID`) REFERENCES `groupe` (`GROUPE_ID`)  ON DELETE CASCADE ON UPDATE CASCADE;
4

1 に答える 1

0

MySqlマッピングは正確でした。問題は、MySQLの制約をオーバーライドしているように見えるHibernateモデルにカスケードアノテーションを追加していたことでした。

于 2012-09-18T14:58:05.423 に答える