/** * Convenience accessor for whether the object is detached. * @param obj The object * @return Whether it is persistent */ public static boolean isDetached(Object obj) { // TODO Change this to org.datanucleus.jpa.Persistable when we swap over if (obj instanceof PersistenceCapable) { return ((PersistenceCapable)obj).jdoIsDetached(); } return false; }
/** * Convenience accessor for whether the object is detached. * @param obj The object * @return Whether it is persistent */ public static boolean isDetached(Object obj) { // TODO Change this to org.datanucleus.jpa.Persistable when we swap over if (obj instanceof PersistenceCapable) { return ((PersistenceCapable)obj).jdoIsDetached(); } return false; }
/** * Tests whether the parameter instance has been detached. * * Instances that have been detached return true. * * <P>Transient instances return false. * <P> * @see PersistenceCapable#jdoIsDetached() * @return <code>true</code> if this instance is detached. * @since 2.0 * @param pc the instance */ public static boolean isDetached(Object pc) { if (pc instanceof PersistenceCapable) { return ((PersistenceCapable)pc).jdoIsDetached(); } else { return implHelper.nonBinaryCompatibleIs(pc, isDetached); } }
/** * Tests whether the parameter instance has been detached. * * Instances that have been detached return true. * * <P>Transient instances return false. * <P> * @see PersistenceCapable#jdoIsDetached() * @return <code>true</code> if this instance is detached. * @since 2.0 * @param pc the instance */ public static boolean isDetached(Object pc) { if (pc instanceof PersistenceCapable) { return ((PersistenceCapable)pc).jdoIsDetached(); } else { return implHelper.nonBinaryCompatibleIs(pc, isDetached); } }
/** * Accessor for an object id given the object. * @param pc The object * @return The Object id */ public Object getObjectId(Object pc) { assertIsOpen(); if (pc != null && pc instanceof PersistenceCapable) { PersistenceCapable p = (PersistenceCapable) pc; if (p.jdoIsPersistent() || p.jdoIsDetached()) { return p.jdoGetObjectId(); } } return null; }
/** * Nullify fields with reference to PersistenceCapable or SCO instances */ public void nullifyFields() { if (!myLC.isDeleted() && !myPC.jdoIsDetached()) { // Update any relationships for fields of this object that aren't dependent replaceFields(allNonPrimaryKeyFieldNumbers, new NullifyRelationFieldManager(this)); flush(); } }
if (pc.jdoIsDetached()) {
if (pc.jdoIsDetached()) {
@Override public Object merge(Object entity) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("JPA Merge: - entity: " + entity); } if (entity instanceof PersistenceCapable) { PersistenceCapable pc = (PersistenceCapable) entity; if (pc.jdoIsDetached() && pc.jdoGetObjectId() == null) { throw new IllegalArgumentException("Detached entity with null id cannot be merged."); } // Read id from entity StateManager sm = om.findStateManager(entity); if (sm != null) { // This path is taken by all merge() calls. // We need to isolate merge() calls that were made to Transient object instead of Detached objects AbstractClassMetaData acmd = om.getMetaDataManager() .getMetaDataForClass(entity.getClass(), om.getClassLoaderResolver()); Object id = ForceQueryUtils.getIdFromObject(pc, acmd); if (id != null) { if (sm instanceof ForceJPAStateManagerImpl) { sm.initialiseForDetached(pc, id, sm.getVersion(pc)); entity = sm.getObject(); } } } } return super.merge(entity); }
if (pc != null && !pc.jdoIsDetached() && !pc.jdoIsDeleted())
@Override public Object merge(Object entity) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("JPA Merge: - entity: " + entity); } if (entity instanceof PersistenceCapable) { PersistenceCapable pc = (PersistenceCapable) entity; if (pc.jdoIsDetached() && pc.jdoGetObjectId() == null) { throw new IllegalArgumentException("Detached entity with null id cannot be merged."); } // Read id from entity StateManager sm = om.findStateManager(entity); if (sm != null) { // This path is taken by all merge() calls. // We need to isolate merge() calls that were made to Transient object instead of Detached objects AbstractClassMetaData acmd = om.getMetaDataManager() .getMetaDataForClass(entity.getClass(), om.getClassLoaderResolver()); Object id = ForceQueryUtils.getIdFromObject(pc, acmd); if (id != null) { if (sm instanceof ForceJPAStateManagerImpl) { sm.initialiseForDetached(pc, id, sm.getVersion(pc)); entity = sm.getObject(); } } } } return super.merge(entity); }
if (!pc.jdoIsDetached()) if (pc.jdoIsDetached())
assertPersistenceCapable(obj); PersistenceCapable pc = (PersistenceCapable) obj; if (pc.jdoIsDetached())
if (myPC.jdoIsDetached()) if (detachable && !detachedPC.jdoIsDetached())
if (pc != null && !pc.jdoIsDetached() && !pc.jdoIsDeleted())
if (myPC.jdoIsDetached()) disconnect(); if (!toCheckPC.jdoIsDetached())
if (((PersistenceCapable)thePC).jdoIsDetached())
if (pc.jdoIsDetached() && ownerSM != null) pm.flush(); id = pcNew.jdoGetObjectId(); if (pc.jdoIsDetached() && ownerSM != null)
assertPersistenceCapable(obj); PersistenceCapable pc = (PersistenceCapable) obj; if (!pc.jdoIsDetached() && JPOXLogger.JDO.isDebugEnabled()) if (pc.jdoIsDetached())
if (pc.jdoIsDetached() && ownerSM != null) if (pc.jdoIsDetached() && ownerSM != null)