Bonjour,
J'essaie désespérément d'utiliser Restrictions.sql, mais j'ai quelques problèmes de mapping.
Exemple :
Code:
List cats = sess.createCriteria(Cat.class).add(Restrictions.sqlRestriction("lower({alias}.name) like lower(?)", "un nom", HIBERNATE.STRING);
Cette requête fonctionne parfaitement pour autant que le nom de la zone dans le fichier s'appelle
name. Mais dans mon cas j'ai un mapping avec changement de nom de zone.
Exemple du fichier de mapping:
Code:
<hibernate-mapping>
<class name="ch.test.Cat" table="CATS">
<id name="id" column="RIDT"></id>
<property name="name" column="RNAME"></property>
</class>
</hibernate-mapping>
Si j'exécute la requête précédente, j'obtiens un message d'erreur indiquant que la zone
name n'existe pas dans le fichier CATS. Ce qui est normal.
Si je défini cette requête:
Code:
List cats = sess.createCriteria(Cat.class).add(Restrictions.sqlRestriction("lower({alias}.RNAME) like lower(?)", "un nom", HIBERNATE.STRING);
Tout est OK.
J'aimerais éviter d'indiquer le
nom réél de la zone dans le fichier mais plutôt le nom dans l'objet. Sinon le mapping pert tout son utilité.
Est-ce possible.
Si ce n'est pas possible directement depuis Restrictions.sqlRestriction, comment récuperer le nom de la zone fichier.
Merci d'avance