/** * Prepare a cascade locking policy. */ @Override public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceKeysToTargetForeignKeys()); policy.setShouldHandleUnmappedFields(true); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
DatabaseMapping parentMapping = getParentMapping(); if (parentMapping != null && parentMapping.isObjectReferenceMapping()) { parentObj = parentMapping.getRealAttributeValueFromObject(obj, uow); if(m_shouldHandleUnmappedFields) { initUnmappedFields(uow); if(m_unmappedQueryKeyFields != null) { AbstractRecord unmappedTranslationRow = getUnmappedTranslationRow(obj, uow); if(unmappedTranslationRow == null) { } else { translationRow = getMappedTranslationRow(obj, uow); translationRow.putAll(unmappedTranslationRow); translationRow = getMappedTranslationRow(obj, uow); translationRow = getMappedTranslationRow(obj, uow); parentObj = uow.executeQuery(getQuery(), translationRow); realParentDescriptor = getParentDescriptorFromInheritancePolicy(parentObj); for (Enumeration policies = realParentDescriptor.getCascadeLockingPolicies().elements(); policies.hasMoreElements();) { CascadeLockingPolicy policy = (CascadeLockingPolicy) policies.nextElement(); policy.lockNotifyParent(parentObj, changeSet, uow);
/** * Prepare a cascade locking policy. */ @Override public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceKeysToTargetForeignKeys()); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
/** * INTERNAL: */ public void setQueryKeyFields(Map<DatabaseField, DatabaseField> queryKeyFields) { setQueryKeyFields(queryKeyFields, true); }
/** * INTERNAL: * Identify mapped and not mapped fields (should be done once). * The result - either two non-empty Maps m_unmappedQueryKeyFields and m_mappedQueryKeyFields, * or m_unmappedQueryKeyFields == null and m_mappedQueryKeyFields == m_queryKeyFields. */ public void initUnmappedFields(UnitOfWorkImpl uow) { if(!m_hasCheckedForUnmappedFields) { m_mappedQueryKeyFields = new HashMap<DatabaseField, DatabaseField>(); m_unmappedQueryKeyFields = new HashMap<DatabaseField, DatabaseField>(); Iterator<Map.Entry<DatabaseField, DatabaseField>> it = m_queryKeyFields.entrySet().iterator(); while(it.hasNext()) { Map.Entry<DatabaseField, DatabaseField> entry = it.next(); if(m_descriptor.getObjectBuilder().getMappingForField(entry.getValue()) == null) { m_unmappedQueryKeyFields.put(entry.getKey(), entry.getValue()); } else { m_mappedQueryKeyFields.put(entry.getKey(), entry.getValue()); } } if(m_unmappedQueryKeyFields.isEmpty()) { m_unmappedQueryKeyFields = null; m_mappedQueryKeyFields = m_queryKeyFields; } initUnmappedFieldsQuery(uow); m_hasCheckedForUnmappedFields = true; } }
if (descriptor.hasCascadeLockingPolicies()) { for (Enumeration policies = descriptor.getCascadeLockingPolicies().elements(); policies.hasMoreElements();) { ((CascadeLockingPolicy)policies.nextElement()).lockNotifyParent(object, changeSet, this);
DatabaseMapping parentMapping = getParentMapping(); if (parentMapping != null && parentMapping.isObjectReferenceMapping()) { parentObj = parentMapping.getRealAttributeValueFromObject(obj, uow); if(m_shouldHandleUnmappedFields) { initUnmappedFields(uow); if(m_unmappedQueryKeyFields != null) { AbstractRecord unmappedTranslationRow = getUnmappedTranslationRow(obj, uow); if(unmappedTranslationRow == null) { } else { translationRow = getMappedTranslationRow(obj, uow); translationRow.putAll(unmappedTranslationRow); translationRow = getMappedTranslationRow(obj, uow); translationRow = getMappedTranslationRow(obj, uow); parentObj = uow.executeQuery(getQuery(), translationRow); realParentDescriptor = getParentDescriptorFromInheritancePolicy(parentObj); policy.lockNotifyParent(parentObj, changeSet, uow);
/** * Prepare a cascade locking policy. */ @Override public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceKeysToTargetForeignKeys()); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
/** * INTERNAL: */ public void setQueryKeyFields(Map<DatabaseField, DatabaseField> queryKeyFields) { setQueryKeyFields(queryKeyFields, true); }
/** * INTERNAL: * Identify mapped and not mapped fields (should be done once). * The result - either two non-empty Maps m_unmappedQueryKeyFields and m_mappedQueryKeyFields, * or m_unmappedQueryKeyFields == null and m_mappedQueryKeyFields == m_queryKeyFields. */ public void initUnmappedFields(UnitOfWorkImpl uow) { if(!m_hasCheckedForUnmappedFields) { m_mappedQueryKeyFields = new HashMap<DatabaseField, DatabaseField>(); m_unmappedQueryKeyFields = new HashMap<DatabaseField, DatabaseField>(); Iterator<Map.Entry<DatabaseField, DatabaseField>> it = m_queryKeyFields.entrySet().iterator(); while(it.hasNext()) { Map.Entry<DatabaseField, DatabaseField> entry = it.next(); if(m_descriptor.getObjectBuilder().getMappingForField(entry.getValue()) == null) { m_unmappedQueryKeyFields.put(entry.getKey(), entry.getValue()); } else { m_mappedQueryKeyFields.put(entry.getKey(), entry.getValue()); } } if(m_unmappedQueryKeyFields.isEmpty()) { m_unmappedQueryKeyFields = null; m_mappedQueryKeyFields = m_queryKeyFields; } initUnmappedFieldsQuery(uow); m_hasCheckedForUnmappedFields = true; } }
if (descriptor.hasCascadeLockingPolicies()) { for (CascadeLockingPolicy policy : descriptor.getCascadeLockingPolicies()) { policy.lockNotifyParent(object, changeSet, this);
DatabaseMapping parentMapping = getParentMapping(); if (parentMapping != null && parentMapping.isObjectReferenceMapping()) { parentObj = parentMapping.getRealAttributeValueFromObject(obj, uow); if(m_shouldHandleUnmappedFields) { initUnmappedFields(uow); if(m_unmappedQueryKeyFields != null) { AbstractRecord unmappedTranslationRow = getUnmappedTranslationRow(obj, uow); if(unmappedTranslationRow == null) { } else { translationRow = getMappedTranslationRow(obj, uow); translationRow.putAll(unmappedTranslationRow); translationRow = getMappedTranslationRow(obj, uow); translationRow = getMappedTranslationRow(obj, uow); parentObj = uow.executeQuery(getQuery(), translationRow); realParentDescriptor = getParentDescriptorFromInheritancePolicy(parentObj); policy.lockNotifyParent(parentObj, changeSet, uow);
/** * Prepare a cascade locking policy. */ public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceKeysToTargetForeignKeys()); policy.setShouldHandleUnmappedFields(true); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
/** * Prepare a cascade locking policy. */ public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceKeysToTargetForeignKeys()); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
/** * INTERNAL: */ public void setQueryKeyFields(Map<DatabaseField, DatabaseField> queryKeyFields) { setQueryKeyFields(queryKeyFields, true); }
/** * INTERNAL: * Identify mapped and not mapped fields (should be done once). * The result - either two non-empty Maps m_unmappedQueryKeyFields and m_mappedQueryKeyFields, * or m_unmappedQueryKeyFields == null and m_mappedQueryKeyFields == m_queryKeyFields. */ public void initUnmappedFields(UnitOfWorkImpl uow) { if(!m_hasCheckedForUnmappedFields) { m_mappedQueryKeyFields = new HashMap<DatabaseField, DatabaseField>(); m_unmappedQueryKeyFields = new HashMap<DatabaseField, DatabaseField>(); Iterator<Map.Entry<DatabaseField, DatabaseField>> it = m_queryKeyFields.entrySet().iterator(); while(it.hasNext()) { Map.Entry<DatabaseField, DatabaseField> entry = it.next(); if(m_descriptor.getObjectBuilder().getMappingForField(entry.getValue()) == null) { m_unmappedQueryKeyFields.put(entry.getKey(), entry.getValue()); } else { m_mappedQueryKeyFields.put(entry.getKey(), entry.getValue()); } } if(m_unmappedQueryKeyFields.isEmpty()) { m_unmappedQueryKeyFields = null; m_mappedQueryKeyFields = m_queryKeyFields; } initUnmappedFieldsQuery(uow); m_hasCheckedForUnmappedFields = true; } }
if (descriptor.hasCascadeLockingPolicies()) { for (CascadeLockingPolicy policy : descriptor.getCascadeLockingPolicies()) { policy.lockNotifyParent(object, changeSet, this);
/** * Prepare a cascade locking policy. */ public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceKeysToTargetForeignKeys()); policy.setShouldHandleUnmappedFields(true); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
/** * INTERNAL: * Prepare a cascade locking policy. */ @Override public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceToTargetKeyFields(), ! isForeignKeyRelationship()); getReferenceDescriptor().addCascadeLockingPolicy(policy); }
/** * INTERNAL: * Prepare a cascade locking policy. */ public void prepareCascadeLockingPolicy() { CascadeLockingPolicy policy = new CascadeLockingPolicy(getDescriptor(), getReferenceDescriptor()); policy.setQueryKeyFields(getSourceToTargetKeyFields(), ! isForeignKeyRelationship()); getReferenceDescriptor().addCascadeLockingPolicy(policy); }