Le 07/11/2013 11:27, Eric Chatellier a écrit :
Dans une application (IsisFish), les utilisateurs dupliquent leur base de données et donc les topiaId sont identiques malgrés le fait qu'il référence deux entités différentes car elle provienent de deux bases différentes.
J'ai du mal à voir le cas d'utilisation, pourquoi dupliquent-ils les bases et se retrouvent à utiliser des entités en doublons dans la même appli ? Dans IsisFish, une région de peche = une base de données. On peut faire une simulation sur une région donc le contexte est ouvert pour le
Le 08/11/2013 10:38, Brendan Le Ny a écrit : parametrage. Donc, on peut en lancer une, puis ouvrir une autre base pour faire une second simulation.
Je me demandais si le equals pourrait dépendre d'autre chose que le seul topiaId. Un peu à la manière des Class java qui ne sont identique que si elle ont été chargées depuis le même class loader.
Dans Topia 3.0-alpha-4, tu as une notion de PersistenceContext, si je compris bien, tes entités sont remontées depuis deux persistenceContext différent donc c'est peut-être lui qui peut permettre d'indiquer une différence.
J'en doute, le problème vient de la methode TopiaEntity.equals() qui ne se base que sur les Id pour vérifier que deux entités sont égales. Et dans notre cas, que deux listes contiennent la même chose. Ce problème est très specifique à IsisFish finalement, et à l'utilisation que les utilisateurs font de leurs bases de données. -- Éric Chatellier - Code Lutin Tel: 02.40.50.29.28 - http://www.codelutin.com