से एक इकाई को अलग करें मैंने एक स्टेटलेस ईजेबी विधि लिखा है जो "केवल-पढ़ने" मोड में एक इकाई प्राप्त करने की इजाजत देता है।जेपीए दृढ़ता संदर्भ (जेपीए 2.0/हाइबरनेट/ईजेबी 3/जे 2 ईई 6)
ऐसा करने का तरीका EntityManager के साथ इकाई को प्राप्त करना है और फिर इसे अलग करना (जेपीए 2.0 EntityManager का उपयोग करके)।
मेरे कोड निम्नलिखित है:
@PersistenceContext
private EntityManager entityManager;
public T getEntity(int entityId, Class<T> specificClass, boolean readOnly) throws Exception{
try{
T entity = (T)entityManager.find(specificClass, entityId);
if (readOnly){
entityManager.detach(entity);
}
return entity;
}catch (Exception e){
logger.error("", e);
throw e;
}
}
हो रही इकाई ठीक काम करता है, लेकिन detach
विधि के आह्वान के बाद त्रुटि देता है:
GRAVE: javax.ejb.EJBException
at ...
Caused by: java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.detach(Ljava/lang/Object;)V
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.detach(EntityManagerWrapper.java:973)
at com.mycomp.dal.MyEJB.getEntity(MyEJB.java:37)
मैं अधिक जानकारी नहीं मिल सकता है और समझ में नहीं आता कि समस्या क्या है ...
क्या कोई मदद कर सकता है?
धन्यवाद! बस मेरे हाइबरनेट जेएआर को 3.5.0 सीआर 2 में अपडेट किया गया और यह बहुत अच्छा काम करता है। – Julien
अलग-अलग ऑपरेशन रिकर्सिव (यानी कैस्केड में) है? –
@ गुइडो - हाँ, अगर आपके पास कैस्केड टाइप है = DETACH – Bozho