C'est utile voir indispensable dans certain cas (IsisFish) mais d'autres application peuvent avoir le besoin de ne pas avoir le contexte dans leurs application (application web) le indispensable va fait un peu sourire :) c'est vrai qu'il est indispensable de conserver la transaction dans laquelle ton entité à été chargée :)
J'ajoute quelques précisions. Dans Isis-Fish on propose aux utilisateurs qui écrivent les scripts de faire des update() sur leurs entités pour sauver les modifications en base. Il y a d'autres cas où un appel de méthode provoque en lazy une création en base si besoin (là j'ai pas l'exemple). Du coup, l'entité trimbale son contexte, en fait Éric migre Isis vers les nouvelles versions de topia et ça casse beaucoup de choses de ne plus pouvoir accéder au contexte d'une entité. Le contexte n'est plus accessible depuis l'extérieur de l'entité (il n'y a plus les accesseurs sur l'interface TopiaEntity) par contre, le contexte est toujours présent dans l'entité mais si j'ai bien suivi, y'en a qui (Tony ? Flo ? Chaipaki ?) voudraient complètement le virer afin que les entités deviennent des POJOs qui ignorent tout des problématiques de persistance (c'est la même raison pour laquelle on préfère les fichiers de mapping aux annotations). Ça aurait l'avantage de permettre d'utiliser les entités hors de tout contexte de persistance (tests), et de les manipuler en contexte distribué (le topiaContext ne passant pas la sérialisation/marshalisation ou alors faut le mettre transient mais ça a des implications...). J'espère avoir résumé le dilemne, pour que chacun puisse se préparer au débat de jeudi soir. -- Brendan Le Ny Code Lutin