/** * INTERNAL: * setup the modifyQuery for update, */ public void prepareModifyQueryForUpdate(ObjectLevelModifyQuery originalQuery, ObjectLevelModifyQuery modifyQuery, Object object) { AbstractRecord aggregateRow = getAggregateRow(originalQuery, object); modifyQuery.setObject(object); modifyQuery.setDescriptor(getReferenceDescriptor(object.getClass(), originalQuery.getSession())); modifyQuery.setPrimaryKey(getReferenceDescriptor().getObjectBuilder().extractPrimaryKeyFromRow(aggregateRow, originalQuery.getSession())); modifyQuery.setTranslationRow(aggregateRow); modifyQuery.setSession(originalQuery.getSession()); modifyQuery.setCascadePolicy(originalQuery.getCascadePolicy()); modifyQuery.dontMaintainCache(); }
/** * INTERNAL: * setup the modifyQuery for update, */ public void prepareModifyQueryForUpdate(ObjectLevelModifyQuery originalQuery, ObjectLevelModifyQuery modifyQuery, Object object) { AbstractRecord aggregateRow = getAggregateRow(originalQuery, object); modifyQuery.setObject(object); modifyQuery.setDescriptor(getReferenceDescriptor(object.getClass(), originalQuery.getSession())); modifyQuery.setPrimaryKey(getReferenceDescriptor().getObjectBuilder().extractPrimaryKeyFromRow(aggregateRow, originalQuery.getSession())); modifyQuery.setTranslationRow(aggregateRow); modifyQuery.setSession(originalQuery.getSession()); modifyQuery.setCascadePolicy(originalQuery.getCascadePolicy()); modifyQuery.dontMaintainCache(); }
/** * INTERNAL: * setup the modifyQuery for update, */ public void prepareModifyQueryForUpdate(ObjectLevelModifyQuery originalQuery, ObjectLevelModifyQuery modifyQuery, Object object) { AbstractRecord aggregateRow = getAggregateRow(originalQuery, object); modifyQuery.setObject(object); modifyQuery.setDescriptor(getReferenceDescriptor(object.getClass(), originalQuery.getSession())); modifyQuery.setPrimaryKey(getReferenceDescriptor().getObjectBuilder().extractPrimaryKeyFromRow(aggregateRow, originalQuery.getSession())); modifyQuery.setTranslationRow(aggregateRow); modifyQuery.setSession(originalQuery.getSession()); modifyQuery.setCascadePolicy(originalQuery.getCascadePolicy()); modifyQuery.dontMaintainCache(); }
/** * INTERNAL: * setup the modifyQuery for pre delete */ public void prepareModifyQueryForDelete(ObjectLevelModifyQuery originalQuery, ObjectLevelModifyQuery modifyQuery, Object wrappedObject, Map extraData) { Object object = getContainerPolicy().unwrapIteratorResult(wrappedObject); AbstractRecord aggregateRow = getAggregateRow(originalQuery, object); ContainerPolicy.copyMapDataToRow(containerPolicy.getKeyMappingDataForWriteQuery(wrappedObject, modifyQuery.getSession()), aggregateRow); if(this.listOrderField != null && extraData != null) { aggregateRow.put(this.listOrderField, extraData.get(this.listOrderField)); } modifyQuery.setObject(object); modifyQuery.setDescriptor(getReferenceDescriptor(object.getClass(), originalQuery.getSession())); modifyQuery.setPrimaryKey(getReferenceDescriptor().getObjectBuilder().extractPrimaryKeyFromRow(aggregateRow, originalQuery.getSession())); modifyQuery.setModifyRow(aggregateRow); modifyQuery.setTranslationRow(aggregateRow); modifyQuery.setSession(originalQuery.getSession()); if (originalQuery.shouldCascadeOnlyDependentParts()) { //This query is the result of being in a UnitOfWork therefor use the Aggregate Collection //specific cascade policy to prevent cascading the delete now modifyQuery.setCascadePolicy(DatabaseQuery.CascadeAggregateDelete); } else { modifyQuery.setCascadePolicy(originalQuery.getCascadePolicy()); } modifyQuery.dontMaintainCache(); }
/** * INTERNAL: * setup the modifyQuery for pre delete */ public void prepareModifyQueryForDelete(ObjectLevelModifyQuery originalQuery, ObjectLevelModifyQuery modifyQuery, Object wrappedObject, Map extraData) { Object object = getContainerPolicy().unwrapIteratorResult(wrappedObject); AbstractRecord aggregateRow = getAggregateRow(originalQuery, object); ContainerPolicy.copyMapDataToRow(containerPolicy.getKeyMappingDataForWriteQuery(wrappedObject, modifyQuery.getSession()), aggregateRow); if(this.listOrderField != null && extraData != null) { aggregateRow.put(this.listOrderField, extraData.get(this.listOrderField)); } modifyQuery.setObject(object); modifyQuery.setDescriptor(getReferenceDescriptor(object.getClass(), originalQuery.getSession())); modifyQuery.setPrimaryKey(getReferenceDescriptor().getObjectBuilder().extractPrimaryKeyFromRow(aggregateRow, originalQuery.getSession())); modifyQuery.setModifyRow(aggregateRow); modifyQuery.setTranslationRow(aggregateRow); modifyQuery.setSession(originalQuery.getSession()); if (originalQuery.shouldCascadeOnlyDependentParts()) { //This query is the result of being in a UnitOfWork therefor use the Aggregate Collection //specific cascade policy to prevent cascading the delete now modifyQuery.setCascadePolicy(DatabaseQuery.CascadeAggregateDelete); } else { modifyQuery.setCascadePolicy(originalQuery.getCascadePolicy()); } modifyQuery.dontMaintainCache(); }
/** * INTERNAL: * setup the modifyQuery for pre delete */ public void prepareModifyQueryForDelete(ObjectLevelModifyQuery originalQuery, ObjectLevelModifyQuery modifyQuery, Object wrappedObject, Map extraData) { Object object = getContainerPolicy().unwrapIteratorResult(wrappedObject); AbstractRecord aggregateRow = getAggregateRow(originalQuery, object); ContainerPolicy.copyMapDataToRow(containerPolicy.getKeyMappingDataForWriteQuery(wrappedObject, modifyQuery.getSession()), aggregateRow); if(this.listOrderField != null && extraData != null) { aggregateRow.put(this.listOrderField, extraData.get(this.listOrderField)); } modifyQuery.setObject(object); modifyQuery.setDescriptor(getReferenceDescriptor(object.getClass(), originalQuery.getSession())); modifyQuery.setPrimaryKey(getReferenceDescriptor().getObjectBuilder().extractPrimaryKeyFromRow(aggregateRow, originalQuery.getSession())); modifyQuery.setModifyRow(aggregateRow); modifyQuery.setTranslationRow(aggregateRow); modifyQuery.setSession(originalQuery.getSession()); if (originalQuery.shouldCascadeOnlyDependentParts()) { //This query is the result of being in a UnitOfWork therefor use the Aggregate Collection //specific cascade policy to prevent cascading the delete now modifyQuery.setCascadePolicy(DatabaseQuery.CascadeAggregateDelete); } else { modifyQuery.setCascadePolicy(originalQuery.getCascadePolicy()); } modifyQuery.dontMaintainCache(); }