User: dsundstrom
  Date: 02/04/12 14:36:27

  Modified:    src/main/org/jboss/ejb/plugins/cmp/jdbc
                        JDBCStartCommand.java SQLUtil.java
  Log:
  Limited constrint name length to DataBaseMetaData.getMaxTableNameLength().
  
  I'm not sure if the is the right choice but the metadata is very limited.
  
  Revision  Changes    Path
  1.27      +29 -12    
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java
  
  Index: JDBCStartCommand.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- JDBCStartCommand.java     12 Apr 2002 20:47:09 -0000      1.26
  +++ JDBCStartCommand.java     12 Apr 2002 21:36:27 -0000      1.27
  @@ -43,7 +43,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Joe Shevland</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Justin Forder</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Michel de Groot</a>
  - * @version $Revision: 1.26 $
  + * @version $Revision: 1.27 $
    */
   public class JDBCStartCommand {
   
  @@ -80,10 +80,11 @@
         // Create table if necessary
         if(!entity.getTableExists()) {
            if(entityMetaData.getCreateTable()) {
  +            DataSource dataSource = entity.getDataSource();
               createTable(
  -                  entity.getDataSource(),
  +                  dataSource,
                     entity.getTableName(),
  -                  getEntityCreateTableSQL());
  +                  getEntityCreateTableSQL(dataSource));
            } else {
               log.debug("Table not create as requested: " +
                     entity.getTableName());
  @@ -106,10 +107,11 @@
                  !relationMetaData.getTableExists()) {
                  
                  if(relationMetaData.getCreateTable()) {
  +                  DataSource dataSource = relationMetaData.getDataSource();
                     createTable(
  -                        relationMetaData.getDataSource(),
  +                        dataSource,
                           cmrField.getTableName(),
  -                        getRelationCreateTableSQL(cmrField));
  +                        getRelationCreateTableSQL(cmrField, dataSource));
                  } else {
                     log.debug("Relation table not create as requested: " +
                           cmrField.getTableName());
  @@ -232,7 +234,8 @@
         }
      }
   
  -   private String getEntityCreateTableSQL() {
  +   private String getEntityCreateTableSQL(DataSource dataSource) 
  +         throws DeploymentException {
   
         StringBuffer sql = new StringBuffer();
         sql.append("CREATE TABLE ").append(entity.getTableName());
  @@ -247,10 +250,14 @@
                  manager.getMetaData().getTypeMapping().getPkConstraintTemplate();
               if(pkConstraint == null) {
                  throw new IllegalStateException("Primary key constriant is " +
  -                     "not allowed for this type of datastore");
  +                     "not allowed for this type of data source");
               }
  +
  +            String name = 
  +               "pk_" + entity.getMetaData().getDefaultTableName();
  +            name = SQLUtil.fixConstraintName(name, dataSource);
               String[] args = new String[] {
  -               "pk_"+entity.getTableName(),
  +               name,
                  SQLUtil.getColumnNamesClause(entity.getPrimaryKeyFields())};
               sql.append(", ").append(pkConstraint.getFunctionSql(args));
            }
  @@ -260,7 +267,10 @@
         return sql.toString();
      }
   
  -   private String getRelationCreateTableSQL(JDBCCMRFieldBridge cmrField) {
  +   private String getRelationCreateTableSQL(
  +         JDBCCMRFieldBridge cmrField,
  +         DataSource dataSource) throws DeploymentException {
  +
         List fields = new ArrayList();
         fields.addAll(cmrField.getTableKeyFields());
         fields.addAll(cmrField.getRelatedCMRField().getTableKeyFields());
  @@ -279,10 +289,14 @@
                  manager.getMetaData().getTypeMapping().getPkConstraintTemplate();
               if(pkConstraint == null) {
                  throw new IllegalStateException("Primary key constriant is " +
  -                     "not allowed for this type of datastore");
  +                     "not allowed for this type of data store");
               }
  +
  +            String name = 
  +               "pk_" + cmrField.getRelationMetaData().getDefaultTableName();
  +            name = SQLUtil.fixConstraintName(name, dataSource);
               String[] args = new String[] {
  -               "pk_"+cmrField.getTableName(),
  +               name,
                  SQLUtil.getColumnNamesClause(fields)};
               sql.append(", ").append(pkConstraint.getFunctionSql(args));
            }   
  @@ -342,9 +356,12 @@
         }
         String a = SQLUtil.getColumnNamesClause(fields);
         String b = SQLUtil.getColumnNamesClause(referencesFields);
  +
  +
         String[] args = new String[] {
            tableName, 
  -         "fk_"+tableName+"_"+cmrFieldName,
  +         SQLUtil.fixConstraintName(
  +               "fk_"+tableName+"_"+cmrFieldName, dataSource),
            a,
            referencesTableName,
            b};
  
  
  
  1.10      +7 -1      jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java
  
  Index: SQLUtil.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/SQLUtil.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SQLUtil.java      12 Apr 2002 20:00:46 -0000      1.9
  +++ SQLUtil.java      12 Apr 2002 21:36:27 -0000      1.10
  @@ -27,7 +27,7 @@
    * SQLUtil helps with building sql statements.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dain Sundstrom</a>
  - * @version $Revision: 1.9 $
  + * @version $Revision: 1.10 $
    */
   public class SQLUtil {
      public static String fixTableName(String tableName, DataSource dataSource) 
  @@ -68,6 +68,12 @@
         } finally {
            JDBCUtil.safeClose(con);
         }
  +   }
  + 
  +   public static String fixConstraintName(String name, DataSource dataSource) 
  +         throws DeploymentException {
  +
  +      return fixTableName(name, dataSource);
      }
      
      // =======================================================================
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to