Bonjour,
Au lancement de mon appli, je fais une requête pour renseigner mes objets. J'utilise JPA/EclipseLink.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public List<Continent> findAllContinent() { Query query = entityManager.createQuery("select c from " + Continent.class.getSimpleName() + " c order by c.continentName"); return query.getResultList(); }
Par la suite, je fais une requête pour rechercher les continents qui commencent ou contiennent une chaine de caractère (ex: ri).
En faisant cela, je me retrouve avec plusieurs instance du même continent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public List<StationGrouping> findStationGroupingByName(String name) { Query query = entityManager.createQuery("select sg from " + StationGrouping.class.getSimpleName() + " sg where LOWER(sg.stationGroupingName) like :name order by sg.stationGroupingName"); query.setParameter("name", "%" + name.toLowerCase() +"%"); return query.getResultList(); }
1ére requête:
2ème requête (recherche des continents avec "ri" dans le nom)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Asie org.worlddatabinding.domain.Continent@1127a1d8 Amerique org.worlddatabinding.domain.Continent@49c06a6d Afrique org.worlddatabinding.domain.Continent@57125f92
J'ai donc un problème de conception important
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Amérique org.worlddatabinding.domain.Continent@40f274b4 Afrique org.worlddatabinding.domain.Continent@6dcbf6bb
Comment éviter d'avoir des instances du même objet ?
Comment faire une recherche avec critères et synchroniser les données de la Bdd et celles du Domain ?
D'avance merci pour votre aide
Partager