मुझे एक हाइबरनेट इकाई के साथ समस्या हो रही है जो प्रारंभ नहीं होता है।
ऐसा लगता है कि यह अभी भी प्रारंभिक प्रॉक्सी नहीं लौटा रहा है ...हाइबरनेट एंटिटी प्रॉक्सी प्रारंभिकरण
यदि मैं अपनी डीबग जानकारी देखता हूं तो मैं अपनी इकाई को आरंभ करने की अपेक्षा करता हूं।
लेकिन यह की तरह लग रहा है:
entity = {[email protected]}"[email protected][id=1,version=0]"
handler = {[email protected]}
interfaces = {java.lang.Class[2]@9197}
constructed = true
persistentClass = {[email protected]}"class SomeEntityImpl"
getIdentifierMethod = null
setIdentifierMethod = null
overridesEquals = true
componentIdType = null
replacement = null
entityName = {[email protected]}"SomeEntityImpl"
id = {[email protected]}"1"
target = {[email protected]200}"[email protected][guid=<null>,id=1,version=0]"
initialized = true
readOnly = true
unwrap = false
session = {[email protected]}"SessionImpl(PersistenceContext[entityKeys=[EntityKey[EntityReferenceImpl#2], EntityKey[SomeEntityImpl#1], EntityKey[...
readOnlyBeforeAttachedToSession = null
sessionFactoryUuid = null
allowLoadOutsideTransaction = false
सूचना है कि मेरी हाइबरनेट POJO अभी भी केवल भी एक स्पष्ट initialisation करने के बाद एक handler
शामिल ...
मेरी डिबग ध्यान में रखते हुए मैं 'असली' संपत्ति देख सकते हैं जब मैं target
नोड का विस्तार करता हूं तो मान (ऊपर प्रदर्शित नहीं)।
मैं क्या कर रहा हूँ:
EntityReferenceImpl entityReference = findEntityReference(session);
SomeEntity entity = null;
if (entityReference != null) {
// initialize association using a left outer join
HibernateUtil.initialize(entityReference.getSomeEntity());
entity = entityReference.getSomeEntity();
}
return entity;
सूचना HibernateUtil.initialize
कॉल!
SomeEntity
मानचित्रण:
public class SomeEntityImpl extends AbstractEntity implements SomeEntity {
@OneToMany(mappedBy = "someEntity", fetch = FetchType.EAGER, targetEntity = EntityReferenceImpl.class, orphanRemoval = true)
@Cascade(CascadeType.ALL)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private Set<EntityReference> entityReferences = new HashSet<>();
@Target(EntityName.class)
@Embedded
private Name name;
@Target(EntityAddress.class)
@Embedded
private Address address;
...
}
EntityReferenceImpl
मानचित्रण:
public class EntityReferenceImpl extends AbstractEntity implements EntityReference {
@ManyToOne(optional = true, fetch = FetchType.LAZY, targetEntity = SomeEntityImpl.class)
@JoinColumn(name = "entity_id")
private SomeEntity someEntity;
...
}
तो पक्ष प्रभाव क्या है: POJO बाद में अद्यतन गुण मैं अभी भी एक ही संरचना हो रही है के साथ आता है (उल्लेख किया ऊपर) और मैं target
नोड के तहत अद्यतन गुण देख सकता हूं।
लेकिन जब मैं session.merge()
या session.update()
या session.saveOrUpdate()
का उपयोग कर इकाई को अद्यतन करने का प्रयास कर रहा हूं, तो हाइबरनेट 'गंदे' गुणों का पता नहीं लगाता है और डेटाबेस को अद्यतन क्वेरी नहीं देता है।
क्या किसी के पास इस अजीब व्यवहार के बारे में कुछ संकेत हैं? मैंने जो कुछ भी किया है, उसके बिना मैंने कोशिश की है लेकिन बिना किसी परिणाम के।
सभी मदद बहुत स्वागत है !!
'हाइबरनेट यूटिल' कक्षा से कौन सा पैकेज आता है? क्या आप 'हाइबरनेट' कक्षा का उपयोग नहीं करते हैं? – walkeros
DID आप इस मुद्दे को हल करते हैं? मुझे एक समान समस्या का सामना करना पड़ रहा है –