Bonjour à tous, J'ai trouvé un moyen très puissant de manipuler les collections en HQL, la fonction elements() qui simplifie grandement les problèmes de relation N-N. Prenons un exemple : ----- * * ----- | A |<---------->| B | ----- ----- Clairement aucune entité n'est généré comme classe association dans ce cas. Dans la génération ToPIA une requête SQL est utilisé pour la suppression, par exemple d'un élément B dans tous les A qui le contienne. Cela donne : getContext().getHibernate().createSQLQuery( "SELECT main.topiaid " + "from A main, A_B secondary " + "where main.topiaid=secondary.fishingZone" + " and secondary.sampleRow='" + entity.getTopiaId() + "'") .addEntity("main", TopiaDAOHelper.getImplementationClass(A.class)).list(); Ce qui est fastidieux et rend fortement la génération dépendante d'Hibernate. Ce code est remplacable par : getContext().find("SELECT main FROM A main, B secondary WHERE secondary IN elements(B.A) AND A.topiaId = :topiaId", "topiaId", entity.getTopiaId()); De la même manière les méthodes findContains sont refactorables en utilisant cette fonction HQL, plutôt qu'un for sur un findAll. Plus d'info : http://docs.jboss.org/hibernate/core/3.3/reference/fr/html/queryhql.html#que... Cordialement, Florian