List of usage examples for org.hibernate.proxy LazyInitializer isUninitialized
boolean isUninitialized();
From source file:com.erinors.hpb.server.handler.JavaBeanHandler.java
License:Apache License
@Override public Object clone(final CloningContext context, Object object) { final Object effectiveObject; if (object instanceof HibernateProxy) { LazyInitializer lazyInitializer = ((HibernateProxy) object).getHibernateLazyInitializer(); if (lazyInitializer.isUninitialized()) { throw new RuntimeException("Uninitialized proxies are not supported by this handler: " + object); }//from w w w. j a v a 2 s . co m effectiveObject = lazyInitializer.getImplementation(); Object alreadyProcessedObject = context.getProcessedObject(effectiveObject); if (alreadyProcessedObject != null) { return alreadyProcessedObject; } } else { effectiveObject = object; } return copyBean(effectiveObject, new ObjectCopier() { @Override public Object processObject(Object object) { return context.clone(object); } }, context); }
From source file:com.erinors.hpb.server.handler.UninitializedHibernateProxyHandler.java
License:Apache License
@Override public Object clone(CloningContext context, Object object) { ////from ww w . j a v a 2 s .c o m // Check if the object is an uninitialized hibernate proxy, return false otherwise // if (!(object instanceof HibernateProxy)) { return null; } HibernateProxy hibernateProxy = (HibernateProxy) object; LazyInitializer lazyInitializer = hibernateProxy.getHibernateLazyInitializer(); if (!lazyInitializer.isUninitialized()) { return null; } // // Check if the proxied object can be cloned // Class<?> persistentClass = lazyInitializer.getPersistentClass(); if (!HibernateProxyPojoSupport.class.isAssignableFrom(persistentClass)) { // TODO tesztet r throw new RuntimeException("Uninitialized hibernate proxy should implement " + HibernateProxyPojoSupport.class.getName() + " to be cloneable: " + persistentClass); } // // Clone // HibernateProxyPojoSupport result; try { Constructor<?> constructor = ClassUtils.getAccessibleInstanceConstructor(persistentClass); result = (HibernateProxyPojoSupport) constructor.newInstance(); } catch (Exception e) { throw new RuntimeException("Cannot instantiate: " + persistentClass.getClass(), e); } result.setUninitializedHibernateProxy(true); result.setUninitializedHibernateProxyId(lazyInitializer.getIdentifier()); context.addProcessedObject(object, result); return result; }
From source file:de.innovationgate.webgate.api.jdbc.WGDocumentImpl.java
License:Open Source License
public void makeEditable() throws WGAPIException { if (_editable == false) { if (_parent.getSessionStatus().isInSaveOperation()) { // Do not make editable if already in save operation return; }//from w w w. j a v a 2 s .co m if (_parent._saveIsolationActive) { _entity.loadFully(); if (_entity instanceof HibernateProxy) { // Unproxying because of #00002040 HibernateProxy proxy = (HibernateProxy) _entity; LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer(); if (lazyInitializer.isUninitialized()) { lazyInitializer.initialize(); } _entity = (MainEntity) lazyInitializer.getImplementation(); _parent.getSession().evict(proxy); } else { _parent.getSession().evict(_entity); } } _editable = true; } }
From source file:org.babyfish.hibernate.association.EntityReferenceComparator.java
License:Open Source License
private static Object getImplementation(Object proxy) { if (proxy instanceof HibernateProxy) { LazyInitializer hibernateLazyInitializer = ((HibernateProxy) proxy).getHibernateLazyInitializer(); if (!hibernateLazyInitializer.isUninitialized()) { Object implementation = hibernateLazyInitializer.getImplementation(); return getImplementation(implementation); }//from w w w .j ava 2 s . com } return proxy; }
From source file:org.babyfish.hibernate.proxy.FrozenLazyInitializerImpl.java
License:Open Source License
@SuppressWarnings("unchecked") private void initTransient(Class<?> persistentClass) { LazyInitializer rawLazyInitializer = this.lazyInitializer; if (persistentClass == null) { persistentClass = getPersistentClass((BasicLazyInitializer) rawLazyInitializer); }//from w w w . jav a2s . c o m HibernateObjectModelMetadata objectModelMetadata = HibernateMetadatas.of(persistentClass); this.objectModelMetadata = objectModelMetadata; this.omFactory = (ObjectModelFactory<ObjectModel>) ObjectModelFactoryFactory .factoryOf(objectModelMetadata.getObjectModelClass()); try { this.getIdentifierMethod = (Method) GET_IDENTIFIER_METHOD_FIELD.get(rawLazyInitializer); this.setIdentifierMethod = (Method) SET_IDENTIFIER_METHOD_FIELD.get(rawLazyInitializer); } catch (IllegalArgumentException | IllegalAccessException e) { throw new AssertionError(); } if (!rawLazyInitializer.isUninitialized()) { ObjectModel targetOM = this.omFactory.get(rawLazyInitializer.getImplementation()); ScalarListener listener = this.new TargetScalarListener(); targetOM.removeScalarListener(listener); targetOM.addScalarListener(listener); } }
From source file:org.babyfish.hibernate.proxy.FrozenLazyInitializerImpl.java
License:Open Source License
@Override public void setImplementation(Object target) { LazyInitializer rawLazyInitializer = this.lazyInitializer; Object oldTarget = rawLazyInitializer.isUninitialized() ? null : rawLazyInitializer.getImplementation(); if (target != oldTarget) { ScalarListener listener = this.new TargetScalarListener(); if (oldTarget != null) { this.omFactory.get(oldTarget).removeScalarListener(listener); }/*w w w. ja v a 2s . c om*/ rawLazyInitializer.setImplementation(target); this.oldTarget = target; if (target != null) { ObjectModel targetOM = this.omFactory.get(target); targetOM.removeScalarListener(listener); //remove the duplicated listener. targetOM.addScalarListener(listener); } } }
From source file:org.babyfish.hibernate.proxy.FrozenLazyInitializerImpl.java
License:Open Source License
@Override public void initialize() throws HibernateException { LazyInitializer rawLazyInitializer = this.lazyInitializer; Object oldTarget = rawLazyInitializer.isUninitialized() ? null : rawLazyInitializer.getImplementation(); rawLazyInitializer.initialize();/*from ww w .j av a 2 s. c om*/ Object target = rawLazyInitializer.getImplementation(); if (oldTarget != target) { ScalarListener listener = this.new TargetScalarListener(); if (oldTarget != null) { this.omFactory.get(oldTarget).removeScalarListener(listener); } this.oldTarget = target; if (target != null) { ObjectModel targetOM = this.omFactory.get(target); targetOM.removeScalarListener(listener); //remove the duplicated listener. targetOM.addScalarListener(listener); } } }
From source file:org.brushingbits.jnap.common.bean.visitor.HibernateTypeResolver.java
License:Apache License
@Override public Class<?> resolve(Object source, BeanPropertyFilter filter) { Class<?> type = null;/* w w w. j a va2s. c o m*/ if (source instanceof HibernateProxy) { HibernateProxy proxy = (HibernateProxy) source; LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer(); if (!lazyInitializer.isUninitialized() || !filter.isIgnoreUninitializedProxies()) { type = lazyInitializer.getImplementation().getClass(); } } else if (source instanceof PersistentCollection) { PersistentCollection collection = (PersistentCollection) source; if (collection.wasInitialized() || !filter.isIgnoreUninitializedProxies()) { type = getUnderlyingCollectionType(collection.getClass()); } } else { type = super.resolve(source, filter); } return type; }
From source file:org.codehaus.groovy.grails.orm.hibernate.proxy.HibernateProxyHandler.java
License:Apache License
public Object unwrapProxy(final HibernateProxy proxy) { final LazyInitializer lazyInitializer = proxy.getHibernateLazyInitializer(); if (lazyInitializer.isUninitialized()) { lazyInitializer.initialize();/*from w w w. j a v a2s .c om*/ } final Object obj = lazyInitializer.getImplementation(); if (obj != null) { GrailsHibernateUtil.ensureCorrectGroovyMetaClass(obj, obj.getClass()); } return obj; }
From source file:org.codehaus.groovy.grails.orm.hibernate.proxy.HibernateProxyHandler.java
License:Apache License
public void initialize(Object o) { if (o instanceof HibernateProxy) { final LazyInitializer hibernateLazyInitializer = ((HibernateProxy) o).getHibernateLazyInitializer(); if (hibernateLazyInitializer.isUninitialized()) { hibernateLazyInitializer.initialize(); }// w ww . j av a 2s. c o m } else if (o instanceof AbstractPersistentCollection) { final AbstractPersistentCollection col = (AbstractPersistentCollection) o; if (!col.wasInitialized()) { col.forceInitialization(); } } }