Index: topia2/src/java/org/codelutin/topia/generator/DAOAbstractGenerator.java diff -u topia2/src/java/org/codelutin/topia/generator/DAOAbstractGenerator.java:1.8 topia2/src/java/org/codelutin/topia/generator/DAOAbstractGenerator.java:1.9 --- topia2/src/java/org/codelutin/topia/generator/DAOAbstractGenerator.java:1.8 Fri Jul 21 00:47:50 2006 +++ topia2/src/java/org/codelutin/topia/generator/DAOAbstractGenerator.java Mon Oct 23 13:52:30 2006 @@ -24,10 +24,10 @@ * Created: 12 déc. 2005 * * @author Arnaud Thimel -* @version $Revision: 1.8 $ +* @version $Revision: 1.9 $ * -* Mise a jour: $Date: 2006/07/21 00:47:50 $ -* par : $Author: thimel $ +* Mise a jour: $Date: 2006/10/23 13:52:30 $ +* par : $Author: bpoussin $ */ package org.codelutin.topia.generator; @@ -99,6 +99,51 @@ } /*{<%=extendClass%> implements org.codelutin.topia.persistence.TopiaDAO { + + public void delete(E entity) throws TopiaException { +}*/ + for (ObjectModelAttribute attr : clazz.getAttributes()) { + ObjectModelAttribute reverse = attr.getReverseAttribute(); + if (!attr.hasAssociationClass() && reverse != null && reverse.isNavigable() + && Util.isNMultiplicity(attr) && Util.isNMultiplicity(reverse)) { + // On doit absolument supprimer pour les relations many-to-many + // le this de la collection de l'autre cote + +/*{ + { + List<<%=attr.getType()%>> list = ((TopiaContextImplementor)getTopiaContext()).getHibernate().createSQLQuery( + "SELECT {main.*} " + + "from <%=GeneratorUtil.getDBName(attr.getClassifier())%> main, <%=GeneratorUtil.getManyToManyTableName(attr)%> secondary " + + "where main.topiaid=secondary.<%=GeneratorUtil.getDBName(attr)%>" + + " and secondary.<%=GeneratorUtil.getReverseDBName(attr)%>='"+entity.getTopiaId()+"'") + .addEntity("main", <%=attr.getType()%>Impl.class).list(); + for (<%=attr.getType()%> item : list) { + item.remove<%=Util.capitalize(attr.getReverseAttributeName())%>(entity); + } + } +}*/ + } else if (!attr.hasAssociationClass() && reverse != null + && reverse.isNavigable() && !Util.isNMultiplicity(reverse)) { + // On doit mettre a null les attributs qui ont cette objet sur les + // autres entites en one-to-* + // TODO peut-etre qu'hibernate est capable de faire ca tout seul ? + /*{ + { + List<<%=attr.getType()%>> list = ((TopiaContextImplementor)getTopiaContext()) + .getDAO(<%=attr.getType()%>.class) + .findAllByProperties("<%=reverse.getName()%>", entity); + for (<%=attr.getType()%> item : list) { + item.set<%=Util.capitalize(attr.getReverseAttributeName())%>(null); + } + } + }*/ + + } + } +/*{ + super.delete(entity); + } + }*/ for (Iterator it = clazz.getAttributes().iterator(); it.hasNext();) { ObjectModelAttribute attr = (ObjectModelAttribute)it.next(); Index: topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java diff -u topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java:1.22 topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java:1.23 --- topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java:1.22 Fri Oct 20 00:26:25 2006 +++ topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java Mon Oct 23 13:52:30 2006 @@ -24,9 +24,9 @@ * Created: 12 déc. 2005 * * @author Arnaud Thimel -* @version $Revision: 1.22 $ +* @version $Revision: 1.23 $ * -* Mise a jour: $Date: 2006/10/20 00:26:25 $ +* Mise a jour: $Date: 2006/10/23 13:52:30 $ * par : $Author: bpoussin $ */ @@ -198,46 +198,6 @@ } public void delete() throws TopiaException { -}*/ - for (ObjectModelAttribute attr : clazz.getAttributes()) { - ObjectModelAttribute reverse = attr.getReverseAttribute(); - if (!attr.hasAssociationClass() && reverse != null && reverse.isNavigable() - && Util.isNMultiplicity(attr) && Util.isNMultiplicity(reverse)) { - // On doit absolument supprimer pour les relations many-to-many - // le this de la collection de l'autre cote - -/*{ - { - List<<%=attr.getType()%>> list = ((TopiaContextImplementor)getTopiaContext()).getHibernate().createSQLQuery( - "SELECT {main.*} " + - "from <%=GeneratorUtil.getDBName(attr.getClassifier())%> main, <%=GeneratorUtil.getManyToManyTableName(attr)%> secondary " + - "where main.topiaid=secondary.<%=GeneratorUtil.getDBName(attr)%>" + - " and secondary.<%=GeneratorUtil.getReverseDBName(attr)%>='"+getTopiaId()+"'") - .addEntity("main", <%=attr.getType()%>Impl.class).list(); - for (<%=attr.getType()%> item : list) { - item.remove<%=Util.capitalize(attr.getReverseAttributeName())%>(this); - } - } -}*/ - } else if (!attr.hasAssociationClass() && reverse != null - && reverse.isNavigable() && !Util.isNMultiplicity(reverse)) { - // On doit mettre a null les attributs qui ont cette objet sur les - // autres entites en one-to-* - // TODO peut-etre qu'hibernate est capable de faire ca tout seul ? - /*{ - { - List<<%=attr.getType()%>> list = ((TopiaContextImplementor)getTopiaContext()) - .getDAO(<%=attr.getType()%>.class) - .findAllByProperties("<%=reverse.getName()%>", this); - for (<%=attr.getType()%> item : list) { - item.set<%=Util.capitalize(attr.getReverseAttributeName())%>(null); - } - } - }*/ - - } - } -/*{ ((TopiaContextImplementor)getTopiaContext()).getDAO(<%=clazz.getName()%>.class).delete(this); }