Salut, Je travaille sur le modèle de isis-fish, et effectivement il ne contient pas de boucle. Par contre, les mapping hibernate issue de la génération semblent en contenir. Pour la migration du schema, on s'était basé sur le parcourt des mappings hibernate pour calculer les dépendances des entités entre elles et ainsi definir un ordre de migration. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.isisfish.entities"> <union-subclass name="fr.ifremer.isisfish.entities.MetierSeasonInfoImpl" extends="fr.ifremer.isisfish.entities.SeasonImpl" table="metierSeasonInfo" node="fr.ifremer.isisfish.entities.MetierSeasonInfoImpl" abstract="false" proxy="fr.ifremer.isisfish.entities.MetierSeasonInfo" > <!--key column="topiaId"/--> <property name="seasonZoneComment" type="text" access="field" column="seasonZoneComment" node="seasonZoneComment"/> <property name="comment" type="text" access="field" column="comment" node="comment"/> <bag name="speciesTargetSpecies" lazy="true" cascade="all,delete-orphan" node="speciesTargetSpecies" embed-xml="true"> <key column="metierSeasonInfo"/> <one-to-many class="fr.ifremer.isisfish.entities.TargetSpeciesImpl" node="topiaId" embed-xml="false"/> </bag> <many-to-one name="metier" class="fr.ifremer.isisfish.entities.MetierImpl" column="metier" node="metier/@topiaId" embed-xml="false"/> <bag name="zone" table="metierseasoninfo_zone" lazy="true" node="zone" embed-xml="true"> <key column="metierSeasonInfo"/> <many-to-many class="fr.ifremer.isisfish.entities.ZoneImpl" column="zone" node="topiaId"/> </bag> </union-subclass> </hibernate-mapping> Par exemple: <many-to-one name="metier" class="fr.ifremer.isisfish.entities.MetierImpl" column="metier" node="metier/@topiaId" embed-xml="false"/> defini une dependance mais n'est pas utilisé parce que non "navigable" de ce coté. (celle-ci j'ai essayé de l'enlever ca ne pose pas de problème) Par contre, celle ci <bag name="speciesTargetSpecies" lazy="true" cascade="all,delete-orphan" node="speciesTargetSpecies" embed-xml="true"> <key column="metierSeasonInfo"/> <one-to-many class="fr.ifremer.isisfish.entities.TargetSpeciesImpl" node="topiaId" embed-xml="false"/> </bag> devrait ^tre supprimée, mais je pense qu'elle est utile pour la suppression en cascade... Voilà le problème :), je ne sais pas si on peut avoir un mapping sans boucle, et que cela fonctionne correctement. Ou alors s'il est possible de savoir si une relation n'ai pas une vraie dépendance... Eric
participants (1)
-
Eric Chatellier