J'ai un mapping du style
Code:
<hibernate-mapping>
<class name="Salarie" table="SALARIE" lazy="true">
<id name="id" column="SALARIE_" type="integer">
<generator class="foreign">
<param name="property">personne</param>
</generator>
</id>
...
<one-to-one name="personne" class="Personne" constrained="true"/>
</hibernate-mapping>
J'ai une requête HQL :
Code:
Query query = aSession.createQuery("from Salarie s where s.personne=:param");
query.setParameter("param", unePersonne);
query.uniqueResult();
Et là j'obtiens une erreur SQL car le paramètre de cette requête n'est pas valué par Hibernate.
Par contre si je fais :
Code:
Query query = aSession.createQuery("from Salarie s where s.personne.id=:param");
query.setParameter("param", unePersonne.getId());
query.uniqueResult();
Ca fonctionne.
Avec des relations mappés en many-to-one, ça marche.
Cela ressemble donc à un bug Hibernate.[/b]