SORU
10 Kasım 2010, ÇARŞAMBA


Nasıl olursa entitymanager varsa oturum nesnesi alabilir miyim

Var

private EntityManager em;

public List getAll(DetachedCriteria detachedCriteria)   {

    return detachedCriteria.getExecutableCriteria( ??? ).list();
}

Nasıl olursa ben entitymanager kullanarak oturum alabilir miyim veya nasıl detachedcriteria sonuç alabilir miyim ?

CEVAP
11 Kasım 2010, PERŞEMBE


Tamamen kapsamlı olması için, eğer bir şeyler JPA 1.0 veya JPA 2.0 bir uygulama kullanıyorsanız farklı.

JPA 1.0

EntityManager#getDelegate() kullanırdın 1.0, JPA ile. Ama unutmayınbu yöntemin uygulanması sonucu belliuygulama sunucusundan yani olmayan taşınabilir diğer Hazırda kullanarak. Örneğin with JBoss.

org.hibernate.Session session = (Session) manager.getDelegate();

Ama with GlassFish, sen yapmak zorunda:

org.hibernate.Session session = ((org.hibernate.ejb.EntityManagerImpl) em.getDelegate()).getSession(); 

Bu korkunç bir şey, ve spec burada suçlu (yeterince net değil) olduğunu kabul ediyorum.

JPA 2.0

2.0, JPA ile yeni uygulamalar için EntityManager#getDelegate() tercih edilecek olan (ve çok) daha iyi EntityManager#unwrap(Class<T>) yeni bir yöntem.

2.0 uygulaması (3.15. Native Hibernate API) JPA olarak Hazırda bekleme, böylece:

Session session = entityManager.unwrap(Session.class);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011
  • Truc Minh

    Truc Minh

    23 Ocak 2011