|
From: <hib...@li...> - 2006-05-05 20:50:36
|
Author: max...@jb...
Date: 2006-05-05 16:50:27 -0400 (Fri, 05 May 2006)
New Revision: 9897
Modified:
trunk/Hibernate3/src/org/hibernate/action/BulkOperationCleanupAction.java
Log:
HHH-870 support SQL updates in named queries
+ synchronize on everything if no synchronize is specified.
Modified: trunk/Hibernate3/src/org/hibernate/action/BulkOperationCleanupAction.java
===================================================================
--- trunk/Hibernate3/src/org/hibernate/action/BulkOperationCleanupAction.java 2006-05-05 20:29:41 UTC (rev 9896)
+++ trunk/Hibernate3/src/org/hibernate/action/BulkOperationCleanupAction.java 2006-05-05 20:50:27 UTC (rev 9897)
@@ -57,40 +57,39 @@
public BulkOperationCleanupAction(SessionImplementor session, Set querySpaces) {
this.session = session;
- if(querySpaces!=null && !querySpaces.isEmpty()) {
- Set tmpSpaces = new HashSet(querySpaces);
- SessionFactoryImplementor factory = session.getFactory();
- Iterator iterator = factory.getAllClassMetadata().entrySet().iterator();
- while ( iterator.hasNext() ) {
- Map.Entry entry = (Map.Entry) iterator.next();
- String entityName = (String) entry.getKey();
- EntityPersister persister = factory.getEntityPersister( entityName );
- Serializable[] entitySpaces = persister.getQuerySpaces();
+ Set tmpSpaces = new HashSet(querySpaces);
+ SessionFactoryImplementor factory = session.getFactory();
+ Iterator iterator = factory.getAllClassMetadata().entrySet().iterator();
+ while ( iterator.hasNext() ) {
+ Map.Entry entry = (Map.Entry) iterator.next();
+ String entityName = (String) entry.getKey();
+ EntityPersister persister = factory.getEntityPersister( entityName );
+ Serializable[] entitySpaces = persister.getQuerySpaces();
- if (affectedEntity( querySpaces, entitySpaces )) {
- if ( persister.hasCache() ) {
- affectedEntityNames.add( persister.getEntityName() );
- }
- Set roles = session.getFactory().getCollectionRolesByEntityParticipant( persister.getEntityName() );
- if ( roles != null ) {
- affectedCollectionRoles.addAll( roles );
- }
- for ( int y = 0; y < entitySpaces.length; y++ ) {
- tmpSpaces.add( entitySpaces[y] );
- }
+ if (affectedEntity( querySpaces, entitySpaces )) {
+ if ( persister.hasCache() ) {
+ affectedEntityNames.add( persister.getEntityName() );
}
-
+ Set roles = session.getFactory().getCollectionRolesByEntityParticipant( persister.getEntityName() );
+ if ( roles != null ) {
+ affectedCollectionRoles.addAll( roles );
+ }
+ for ( int y = 0; y < entitySpaces.length; y++ ) {
+ tmpSpaces.add( entitySpaces[y] );
+ }
}
- this.spaces = (Serializable[]) tmpSpaces.toArray( new Serializable[tmpSpaces.size()] );
- } else {
- // TODO: no synchronize info, sync on *all* ?
- this.spaces = new Serializable[0];
}
+ this.spaces = (Serializable[]) tmpSpaces.toArray( new Serializable[tmpSpaces.size()] );
}
+ /** returns true if no queryspaces or if there are a match */
private boolean affectedEntity(Set querySpaces, Serializable[] entitySpaces) {
+ if(querySpaces==null || querySpaces.isEmpty()) {
+ return true;
+ }
+
for ( int i = 0; i < entitySpaces.length; i++ ) {
if ( querySpaces.contains( entitySpaces[i] ) ) {
return true;
|