Pregunta

¿Cómo se puede cargar un objeto a través de Hibernate basado en un valor de campo de un objeto miembro? Por ejemplo, suponga que existen las siguientes clases, con una relación uno a uno entre bar y foo:

Foo {
    Long id;
}

Bar {
    Long id;
    Foo aMember;
}

¿Cómo podría uno usar los Criterios de Hibernación para cargar Bar si solo tuviera la identificación de Foo?

Lo primero que saltó a mi cabeza fue cargar el objeto Foo y establecerlo como Criterio para cargar el objeto Bar, pero eso parece un desperdicio. ¿Existe una manera efectiva de hacer esto con Criteria, o es HQL la forma en que esto debería manejarse?

¿Fue útil?

Solución

Puede usar los Criterios de manera eficiente para lograr esto:

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

debería hacer el truco.

Otros consejos

Puede usar Criterios o HQL.

Ejemplo de HQL:

Consulta query = session.createQuery (" from Bar como barra donde bar.aMember.id =: fooId ");

query.setParameter (" fooId " ;, fooId);

Resultado de la lista = query.list ();

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top