[ORM]Problème de conception
Bonjour,
Au lancement de mon appli, je fais une requête pour renseigner mes objets. J'utilise JPA/EclipseLink.
Code:
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:
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:
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:
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 :aie:
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