Utilisation de Criterias Hibernate avec une Map

Puisque j’ai la chance d’avoir un développeur Hibernate sous la main (façon de parler🙂 ), j’en profite pour poser une autre question qui commence à m’obséder sérieusement. Dans mon appli, j’ai un objet Indicateur déclaré comme ça :

public class Indicateur {
// ...
private Map listValeurIndicateur = new HashMap();
// ...
}

Et, à un moment donné, je cherche à écrire le Criteria qui me retourne l’équivalent de (écrit en pseudo-HQL) listValeurIndicateur['DOMAINE']=789, où 789 est l’id d’une valeur dans une liste. Le truc étant que cette Map est mappée comme ça dans la base :


 

 

J’ai essayé des tonnes de trucs (listés ci-dessous), mais aucun n’a marché. Le code est à peu prés bon pour la partie VAL_IDVALEUR qui de toute manière ne s’écrit pas comme ça. Mais je l’ai écrite pour éviter les remarques perfides du genre ben ouais mais c’est normal que ça marche pas si tu teste pas ta valeur

// Celui-ci plante car IND_CODELISTE n'est évidement pas présent dans mes classes Java
criteriaParent.createCriteria("listValeurIndicateur") .add(Restrictions.eq("IND_CODELISTE", "DOMAINE")) .add(Restrictions.eq("VAL_IDVALEUR", 789));
// là, ça plante car listValeurIndicateur['DOMAINE'] n'est pas une propriété
criteriaParent.add(Restrictions.eq("listValeurIndicateur['DOMAINE']", 789);

Il y a une solution ou, encore une fois, je touche du doigt les limites d’Hibernate ?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s