[jboss-cvs] JBossAS SVN: r66819 - trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 7 09:46:26 EST 2007


Author: alex.loubyansky at jboss.com
Date: 2007-11-07 09:46:26 -0500 (Wed, 07 Nov 2007)
New Revision: 66819

Modified:
   trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationMetaData.java
   trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationshipRoleMetaData.java
Log:
fixed relationName initialization

Modified: trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationMetaData.java	2007-11-07 14:01:19 UTC (rev 66818)
+++ trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationMetaData.java	2007-11-07 14:46:26 UTC (rev 66819)
@@ -126,10 +126,7 @@
 	public JDBCRelationMetaData(JDBCApplicationMetaData jdbcApplication, RelationMetaData relationMetaData)
 			throws DeploymentException
 	{
-
-		relationName = relationMetaData.getRelationName();
-
-		RelationshipRoleMetaData leftRole = relationMetaData.getLeftRelationshipRole();
+      RelationshipRoleMetaData leftRole = relationMetaData.getLeftRelationshipRole();
 		RelationshipRoleMetaData rightRole = relationMetaData.getRightRelationshipRole();
 
 		// set the default mapping style
@@ -159,7 +156,9 @@
 		left.init(right);
 		right.init(left);
 
-		if (mappingStyle == TABLE)
+      relationName = getNonNullRelationName(left, right, relationMetaData.getRelationName());
+
+      if (mappingStyle == TABLE)
 		{
 			tableName = createDefaultTableName();
 			tablePostCreateCmd = getDefaultTablePostCreateCmd();
@@ -171,7 +170,7 @@
 		}
 	}
 
-	/**
+   /**
 	 * Constructs relation meta data with the data contained in the ejb-relation
 	 * element or the defaults element from a jbosscmp-jdbc xml file. Optional
 	 * values of the xml element that are not present are loaded from the
@@ -189,8 +188,6 @@
 	public JDBCRelationMetaData(JDBCApplicationMetaData jdbcApplication, Element element,
 			JDBCRelationMetaData defaultValues) throws DeploymentException
 	{
-
-		relationName = defaultValues.getRelationName();
 		mappingStyle = loadMappingStyle(element, defaultValues);
 
 		// read-only
@@ -376,7 +373,9 @@
 			right.init(left, rightElement);
 		}
 
-		// at least one side of a fk relation must have keys
+      this.relationName = getNonNullRelationName(left, right, defaultValues.getRelationName());
+
+      // at least one side of a fk relation must have keys
 		if (isForeignKeyMappingStyle() && left.getKeyFields().isEmpty() && right.getKeyFields().isEmpty())
 		{
 			throw new DeploymentException("Atleast one role of a foreign-key "
@@ -756,4 +755,21 @@
 		}
 		return dataSource;
 	}
+
+   private String getNonNullRelationName(JDBCRelationshipRoleMetaData left,
+                                         JDBCRelationshipRoleMetaData right,
+                                         String relationName)
+   {
+      // JBossCMP needs ejb-relation-name if jbosscmp-jdbc.xml is used to map relationships.
+      if(relationName == null)
+      {
+         // generate unique name, we can't rely on ejb-relationship-role-name being unique
+         relationName = left.getEntity().getName() +
+            (!left.isNavigable() ? "" : "_" + left.getCMRFieldName()) +
+            "-" +
+            right.getEntity().getName() +
+            (!right.isNavigable() ? "" : "_" + right.getCMRFieldName());
+      }
+      return relationName;
+   }
 }

Modified: trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationshipRoleMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationshipRoleMetaData.java	2007-11-07 14:01:19 UTC (rev 66818)
+++ trunk/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationshipRoleMetaData.java	2007-11-07 14:46:26 UTC (rev 66819)
@@ -282,7 +282,7 @@
       return cmrFieldName;
    }
 
-   private boolean isNavigable()
+   public boolean isNavigable()
    {
       return navigable;
    }




More information about the jboss-cvs-commits mailing list