Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Hibernate OGM, Domain model persistence for NoSQL datastores
   *
   * License: GNU Lesser General Public License (LGPL), version 2.1 or later
   * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
   */
  package org.hibernate.ogm.dialect.impl;
  
 
Wraps a org.hibernate.ogm.dialect.batch.spi.BatchableGridDialect intercepting the operation and populating the queue that the delegate will use to execute operations in batch.

The org.hibernate.ogm.dialect.spi.TupleContext and org.hibernate.ogm.dialect.spi.AssociationContext are also populated with the org.hibernate.ogm.dialect.batch.spi.OperationsQueue before looking for element in the db. This way the underlying datastore can make assumptions about elements that are in the queue but not in the db.

Author(s):
Davide D'Alto <davide@hibernate.org>
 
 
 	private static final Log log = LoggerFactory.make();
 
 	private final EventContextManager eventContext;
 
 		superdialect );
 		this. = eventContext;
 	}
 
 	private boolean isBatchDisabled() {
 	}
 
 		OperationsQueue operationsQueue = null;
 
 		if ( .isActive() ) {
 			operationsQueue = .getOperationsQueue.class );
 		}
 
 		if ( operationsQueue == null ) {
 		}
 		else {
 			return operationsQueue;
 		}
 	}
 
 	public void executeBatch() {
 		.tracef"Executing batch" );
 
 		try {
 		}
 		catch ( TupleAlreadyExistsException taee ) {
 			// TODO: Ideally, we should log the entity name + id here; For now we trust the datastore to provide this
 			// information via the original exception; It'd require a fair bit of changes to obtain the entity name here
 			// (we'd have to obtain the persister matching the given entity key metadata which in turn would require
 			// access to the session factory which is not easily available here)
 			throw .mustNotInsertSameEntityTwicenulltaee );
 		}
 	}
 
 	public Tuple getTuple(EntityKey keyTupleContext tupleContext) {
 		TupleContext contextWithQueue = new TupleContextImpl(
 				(TupleContextImpltupleContext,
 		);
 
 		return super.getTuplekeycontextWithQueue );
 	}
 
 	public void insertOrUpdateTuple(EntityKey keyTuple tupleTupleContext tupleContext) {
 		if ( isBatchDisabled() ) {
 			super.insertOrUpdateTuplekeytupletupleContext );
 		}
 		else {
 			getOperationQueue().addnew InsertOrUpdateTupleOperationtuplekeytupleContext ) );
		}
	}
	public void removeTuple(EntityKey keyTupleContext tupleContext) {
		if ( isBatchDisabled() ) {
			super.removeTuplekeytupleContext );
		}
		else {
			getOperationQueue().addnew RemoveTupleOperationkeytupleContext ) );
		}
	}
	public Association getAssociation(AssociationKey keyAssociationContext associationContext) {
		return super.getAssociationkeywithQueueassociationContext ) );
	}
	public Association createAssociation(AssociationKey keyAssociationContext associationContext) {
		return super.createAssociationkeywithQueueassociationContext ) );
	}
	public void insertOrUpdateAssociation(AssociationKey keyAssociation associationAssociationContext associationContext) {
		if ( isBatchDisabled() ) {
			super.insertOrUpdateAssociationkeyassociationwithQueueassociationContext ) );
		}
		else {
			getOperationQueue().addnew InsertOrUpdateAssociationOperationassociationkeywithQueueassociationContext ) ) );
		}
	}
	public void removeAssociation(AssociationKey keyAssociationContext associationContext) {
		if ( isBatchDisabled() ) {
			super.removeAssociationkeywithQueueassociationContext ) );
		}
		else {
			getOperationQueue().addnew RemoveAssociationOperationkeywithQueueassociationContext ) ) );
		}
	}
	private AssociationContext withQueue(AssociationContext associationContext) {
		return new AssociationContextImpl( (AssociationContextImplassociationContextgetOperationQueue() );
	}
New to GrepCode? Check out our FAQ X