Wie kann ich das Sitzungsobjekt erhalten, wenn ich den Entitymanager habe?
Habe ich
private EntityManager em;
public List getAll(DetachedCriteria detachedCriteria) {
return detachedCriteria.getExecutableCriteria( ??? ).list();
}
Wie kann ich abrufen die Sitzung, wenn bin mit entitymanager oder wie bekomme ich das Ergebnis von meinem detachedcriteria ?
InformationsquelleAutor der Frage storm_buster | 2010-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Völlig erschöpfend ist, sind die Dinge anders, wenn man mit einem JPA 1.0-oder JPA 2.0 Implementierung.
JPA 1.0
Mit JPA 1.0, müssten Sie den Einsatz
EntityManager#getDelegate()
. Aber Bedenken Sie, dass das Ergebnis dieser Methode wird durch die Implementierung spezifischer also nicht portable von application server mit Hibernate zu den anderen. Zum Beispiel mit JBoss Sie tun würde:Aber mit GlassFishSie würde tun müssen:
Ich bin damit einverstanden, das ist schrecklich, und die Skillung ist die Schuld hier (nicht klar genug).
JPA 2.0
Mit JPA 2.0 gibt es einen neuen (und viel besseren)
EntityManager#unwrap(Class<T>)
Methode ist vorzuziehenEntityManager#getDelegate()
für neue Anwendungen.Also mit Hibernate als JPA 2.0 Implementierung (siehe 3.15. Native Hibernate-API), Sie würde tun:
InformationsquelleAutor der Antwort Pascal Thivent
Finden Sie im Abschnitt "5.1. Der Zugriff auf Hibernate-APIs von JPA" in der Hibernate ORM-Benutzerhandbuch:
InformationsquelleAutor der Antwort Vladimir Ivanov
Dies besser zu erklären.
InformationsquelleAutor der Antwort Enio Dantas