3 Stimmen

Hibernate Kriterienabfrage zur Assoziation

Wie kann ich die folgende Hibernate-Abfrage mit dem Criteria-API ausführen? Ich habe ein Objekt Eltern mit der Liste Kinder. Ich möchte alle Eltern durchsuchen und herausfinden, welche Eltern ein bestimmtes Kind enthalten. d.h. List findParents(Child child);

Danke.

2voto

Tony Day Punkte 2160

Dies scheint für mich zu funktionieren. Das Produkt ist der Elternteil und die Zutat ist das Kind. Hoffentlich findet es alle Produkte, die die angegebene Zutat enthalten. Ich konnte dies jedoch noch nicht vollständig testen.

public IList GetProductsWithIngredient(Ingredient ingredient)
{
    using (ITransaction transaction = session.BeginTransaction())
    {
        ICriteria criteria = session.CreateCriteria();
        criteria.CreateCriteria("Ingredients")
        .Add(Restrictions.Eq("GUID", ingredient.GUID));

        return criteria.List();
    }
}

Hoffentlich hilft das :)

HINWEIS: Die GUID ist mein eindeutiger Bezeichner.

EDIT: Ich habe dies gerade mit mehr als einem Produkt getestet und es scheint das richtige Produkt zurückzugeben. Vielen Dank an zoidbeck.

0voto

nzilsk Punkte 39

In Java ist es so:

Criteria criteria = session.createCriteria(Parent.class,"parent")
    .createAlias("child","child")
    .add(Restriction.eq("child.name",child.getName());

   List parents = criteria.list();

sollte Ihnen die Antwort geben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X