-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: création involontaire de Foreign Keys
PostPosted: Fri Jun 26, 2009 7:41 pm 
Newbie

Joined: Fri Jun 26, 2009 7:31 pm
Posts: 5
Bonjour tout le monde,

Je suis nouveau sur le forum..

Alors voila, j'ai un petit probleme avec Hibernate Synchronizer

Je m'explique : il y a certaine tables dans ma base de données qui sont bien mappées et qui sont un peu complexe (présence d'héritage et de composition), lorsque je veux effectuer n'importe quel traitement (select, insert..) la-dessus à partir de l'application avec Hibernate ( de Eclipse et non du manager de BD), alors il me crée de nouvelles Foreign Keys sur des champs de la table, donc en fin de compte j'aurais dans ma tables un champ avec deux ou 3 foreign keys, qui parfois s'auto référentient !!!!!

Je vous poste le code SQL de la table avant et après la requête (même un select HQL)

Avant :
Code:
CREATE TABLE `feature` (
  `ID_ART` bigint(20) NOT NULL,
  `FEA_ID_ART` bigint(20) default NULL,
  `ID_PROD` bigint(20) default NULL,
  `NOM_ART` varchar(20) default NULL,
  `VER_ART` longtext,
  `STATUT_ART` longtext,
  `DESCRIPTION_ART` text,
  `PRIORITE_FEAT` varchar(10) default NULL,
  `DETAILS_FEAT` text,
  PRIMARY KEY  (`ID_ART`),
  KEY `COMPOSE_FEAT_FK` (`FEA_ID_ART`),
  CONSTRAINT `FK_COMPOSE_FEAT` FOREIGN KEY (`FEA_ID_ART`) REFERENCES `feature` (`ID_ART`),
  CONSTRAINT `FK_HERITAGE_1` FOREIGN KEY (`ID_ART`) REFERENCES `artifact` (`ID_ART`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Apres :

Code:
CREATE TABLE `feature` (
  `ID_ART` bigint(20) NOT NULL,
  `FEA_ID_ART` bigint(20) default NULL,
  `ID_PROD` bigint(20) default NULL,
  `NOM_ART` varchar(20) default NULL,
  `VER_ART` longtext,
  `STATUT_ART` longtext,
  `DESCRIPTION_ART` text,
  `PRIORITE_FEAT` varchar(10) default NULL,
  `DETAILS_FEAT` text,
  PRIMARY KEY  (`ID_ART`),
  KEY `COMPOSE_FEAT_FK` (`FEA_ID_ART`),
  KEY `FKC5A27AF69E837999` (`ID_ART`),
  KEY `FKC5A27AF65060162D` (`ID_ART`),
  KEY `FKC5A27AF6708854F6` (`FEA_ID_ART`),
  CONSTRAINT `FKC5A27AF6708854F6` FOREIGN KEY (`FEA_ID_ART`) REFERENCES `feature` (`ID_ART`),
  CONSTRAINT `FKC5A27AF65060162D` FOREIGN KEY (`ID_ART`) REFERENCES `artifact` (`ID_ART`),
  CONSTRAINT `FKC5A27AF69E837999` FOREIGN KEY (`ID_ART`) REFERENCES `feature` (`ID_ART`),
  CONSTRAINT `FK_COMPOSE_FEAT` FOREIGN KEY (`FEA_ID_ART`) REFERENCES `feature` (`ID_ART`),
  CONSTRAINT `FK_HERITAGE_1` FOREIGN KEY (`ID_ART`) REFERENCES `artifact` (`ID_ART`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



Remarquez la présence des nouvelels Foreign Keys (avec la suite de Chiffres)

ca mempeche alors d'effectuer d'autres traitements essentiellement les insertions...

est ce que quelqu'un as déja rencontré ce cas de figure ? je travaille avec Hibernate Synchronizer, et MySQL 5.0 comme SGBD...


Je vous remercie pour votre aide

Cordialement,


Top
 Profile  
 
 Post subject: Re: création involontaire de Foreign Keys
PostPosted: Mon Jun 29, 2009 10:35 am 
Newbie

Joined: Fri Jun 26, 2009 7:31 pm
Posts: 5
Rebonjour tt le monde,

Enfin j'ai trouvé la solution à mon probleme, je vous la poste en esperant d'aider ceux qui rencontreront cette erreur

En effet, il y avait une lign de code qui demandait à Hibernate de faire ces changements à chaque fois que me connectais à la base

Alors voila, tout le problème venait en fait du fichier de configuration d'Hibernate (hibernate.cfg.xml) :

la ligne : <property name="hbm2ddl.auto">update</property>
faisait qu'à chaque fois qu'on se connecte à la base, Hibernate éxecute des requêtes DLL pour gérer les liens de dépendance des différentes FK et liens d'héritage de nouveau, c'est ce qui fait qu'on a ces FK dupliquées sur la même colonne

Alors la solution serait bien évidemment d'enlever cette ligne de code du fichier "hibernate.cfg.xml"

J'espère que je vous ai éclairci la situation

Salut !


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.