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).
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();
	}
En faisant cela, je me retrouve avec plusieurs instance du même continent
1ére requête:
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
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
 
Amérique      org.worlddatabinding.domain.Continent@40f274b4
Afrique         org.worlddatabinding.domain.Continent@6dcbf6bb
J'ai donc un problème de conception important

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