/** * INTERNAL: * The message is passed to its reference class descriptor. */ public void postUpdateAttributeValue(WriteObjectQuery query, Object attributeValue) throws DatabaseException, OptimisticLockException { if (attributeValue == null) { return; } // PERF: Avoid for simple aggregates. AbstractSession session = query.getSession(); ClassDescriptor descriptor = getReferenceDescriptor(attributeValue, session); if (descriptor.getObjectBuilder().isSimple() && !descriptor.getEventManager().hasAnyEventListeners()) { return; } ObjectChangeSet changeSet = null; UnitOfWorkChangeSet uowChangeSet = null; if (session.isUnitOfWork() && (((UnitOfWorkImpl)session).getUnitOfWorkChangeSet() != null)) { uowChangeSet = (UnitOfWorkChangeSet)((UnitOfWorkImpl)session).getUnitOfWorkChangeSet(); changeSet = (ObjectChangeSet)uowChangeSet.getObjectChangeSetForClone(attributeValue); } WriteObjectQuery aggregateQuery = buildAggregateWriteQuery(query, attributeValue); aggregateQuery.setObjectChangeSet(changeSet); descriptor.getQueryManager().postUpdate(aggregateQuery); executeEvent(DescriptorEventManager.PostUpdateEvent, aggregateQuery); // aggregates do not actually use a query to write to the database so the post write must be called here executeEvent(DescriptorEventManager.PostWriteEvent, aggregateQuery); }
/** * INTERNAL: * The message is passed to its reference class descriptor. */ public void postUpdateAttributeValue(WriteObjectQuery query, Object attributeValue) throws DatabaseException, OptimisticLockException { if (attributeValue == null) { return; } // PERF: Avoid for simple aggregates. AbstractSession session = query.getSession(); ClassDescriptor descriptor = getReferenceDescriptor(attributeValue, session); if (descriptor.getObjectBuilder().isSimple() && !descriptor.getEventManager().hasAnyEventListeners()) { return; } ObjectChangeSet changeSet = null; UnitOfWorkChangeSet uowChangeSet = null; if (session.isUnitOfWork() && (((UnitOfWorkImpl)session).getUnitOfWorkChangeSet() != null)) { uowChangeSet = (UnitOfWorkChangeSet)((UnitOfWorkImpl)session).getUnitOfWorkChangeSet(); changeSet = (ObjectChangeSet)uowChangeSet.getObjectChangeSetForClone(attributeValue); } WriteObjectQuery aggregateQuery = buildAggregateWriteQuery(query, attributeValue); aggregateQuery.setObjectChangeSet(changeSet); descriptor.getQueryManager().postUpdate(aggregateQuery); executeEvent(DescriptorEventManager.PostUpdateEvent, aggregateQuery); // aggregates do not actually use a query to write to the database so the post write must be called here executeEvent(DescriptorEventManager.PostWriteEvent, aggregateQuery); }
/** * INTERNAL: * The message is passed to its reference class descriptor. */ public void postUpdateAttributeValue(WriteObjectQuery query, Object attributeValue) throws DatabaseException, OptimisticLockException { if (attributeValue == null) { return; } // PERF: Avoid for simple aggregates. AbstractSession session = query.getSession(); ClassDescriptor descriptor = getReferenceDescriptor(attributeValue, session); if (descriptor.getObjectBuilder().isSimple() && !descriptor.getEventManager().hasAnyEventListeners()) { return; } ObjectChangeSet changeSet = null; UnitOfWorkChangeSet uowChangeSet = null; if (session.isUnitOfWork() && (((UnitOfWorkImpl)session).getUnitOfWorkChangeSet() != null)) { uowChangeSet = (UnitOfWorkChangeSet)((UnitOfWorkImpl)session).getUnitOfWorkChangeSet(); changeSet = (ObjectChangeSet)uowChangeSet.getObjectChangeSetForClone(attributeValue); } WriteObjectQuery aggregateQuery = buildAggregateWriteQuery(query, attributeValue); aggregateQuery.setObjectChangeSet(changeSet); descriptor.getQueryManager().postUpdate(aggregateQuery); executeEvent(DescriptorEventManager.PostUpdateEvent, aggregateQuery); // aggregates do not actually use a query to write to the database so the post write must be called here executeEvent(DescriptorEventManager.PostWriteEvent, aggregateQuery); }
queryManager.postUpdate(writeQuery);
queryManager.postUpdate(writeQuery);
queryManager.postUpdate(writeQuery);
queryManager.postUpdate(writeQuery);
queryManager.postUpdate(writeQuery);
queryManager.postUpdate(writeQuery);