[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