J'ai un mappage d'hibernation avec des types de collection personnalisés.Requête Hibernate sur la collection personnalisée
java:
class Policy {
...
private HistoryMap<Date, PolicyStatus> statusHistory;
...
}
hbm.xml:
<map name="statusHistory" inverse="true" table="tbl_policy_in_time" order-by="PolIt_ValidFrom desc"
collection-type="be.pensionarchitects.admindb.infrastructure.hibernate.HistoryMapType">
...
</map>
HistoryMapType
est une implémentation de l'interface HistoryMap
et met en œuvre UserCollectionType
. Cette carte a une méthode getCurrent()
qui renvoie le PolicyStatus
actuel.
Maintenant, j'ai besoin de faire une requête pour obtenir tous les objets de politique ayant un PolicyStatus spécifique en cours.
Quelque chose comme:
Criteria crit = getSession().createCriteria(Policy.class)
.createAlias("statusHistory.current", "status")
.add(Restrictions.or(
Restrictions.eq("status.code", "active"),
Restrictions.eq("status.code", "sleeper")));
Je comprends que cela ne fonctionne pas comme « courant » n'est pas un mappage d'association. Comment devrais-je résoudre ça? J'ai lu que je devrais utiliser HQL à la place, mais je n'ai aucune idée de comment et si c'est possible.
Tous les pointeurs sont appréciés!
Merci