Question

Comment charger un objet via Hibernate en fonction de la valeur de champ d’un objet membre? Par exemple, supposons que les classes suivantes existent, avec une relation un-à-un entre bar et foo:

Foo {
    Long id;
}

Bar {
    Long id;
    Foo aMember;
}

Comment utiliser Hibernate Criteria pour charger Bar si vous n’avez que l’id de Foo?

La première chose qui me vint à l’esprit fut de charger l’objet Foo et de le définir comme critère pour charger l’objet Bar, mais cela semble inutile. Existe-t-il un moyen efficace de le faire avec Criteria ou bien HQL devrait-il être géré?

Était-ce utile?

La solution

Vous pouvez absolument utiliser les critères de manière efficace pour y parvenir:

session.createCriteria(Bar.class).
        createAlias("aMember", "a").
        add(Restrictions.eq("a.id", fooId));

devrait faire l'affaire.

Autres conseils

Vous pouvez utiliser des critères ou HQL.

Exemple HQL:

Requête requête = session.createQuery ("de barre comme barre où bar.aMember.id =: fooId");

query.setParameter ("fooId", fooId);

Liste result = query.list ();

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top