[hibernate-commits] Hibernate SVN: r16702 - core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Jun 5 08:25:08 EDT 2009


Author: adamw
Date: 2009-06-05 08:25:08 -0400 (Fri, 05 Jun 2009)
New Revision: 16702

Modified:
   core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java
Log:
HHH-3939:
- not creating a join table when the association is not audited

Modified: core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java	2009-06-05 12:09:49 UTC (rev 16701)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/configuration/metadata/AuditMetadataGenerator.java	2009-06-05 12:25:08 UTC (rev 16702)
@@ -164,6 +164,19 @@
         }
     }
 
+	private boolean checkPropertiesAudited(Iterator<Property> properties, ClassAuditingData auditingData) {
+		while (properties.hasNext()) {
+			Property property = properties.next();
+            String propertyName = property.getName();
+			PropertyAuditingData propertyAuditingData = auditingData.getPropertyAuditingData(propertyName);
+            if (propertyAuditingData == null) {
+				return false;
+			}
+		}
+
+		return true;
+	}
+
     @SuppressWarnings({"unchecked"})
     private void createJoins(PersistentClass pc, Element parent, ClassAuditingData auditingData) {
         Iterator<Join> joins = pc.getJoinIterator();
@@ -174,6 +187,11 @@
         while (joins.hasNext()) {
             Join join = joins.next();
 
+			// Checking if all of the join properties are audited
+			if (!checkPropertiesAudited(join.getPropertyIterator(), auditingData)) {
+				continue;
+			}
+
             // Determining the table name. If there is no entry in the dictionary, just constructing the table name
             // as if it was an entity (by appending/prepending configured strings).
             String originalTableName = join.getTable().getName();
@@ -210,8 +228,10 @@
             Join join = joins.next();
             Element joinElement = entitiesJoins.get(entityName).get(join);
 
-            addProperties(joinElement, join.getPropertyIterator(), currentMapper, auditingData, entityName,
-                    xmlMappingData, firstPass);
+			if (joinElement != null) {
+            	addProperties(joinElement, join.getPropertyIterator(), currentMapper, auditingData, entityName,
+                	    xmlMappingData, firstPass);
+			}
         }
     }
 




More information about the hibernate-commits mailing list