User: dsundstrom
Date: 02/04/10 08:18:45
Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc/bridge
JDBCCMRFieldBridge.java JDBCEntityBridge.java
Log:
Fixed bug [ 533686 ] JDBCStartCommand.tableExists() Oracle.
Table names are now passed through SQLUtil.fixTableName(...). Currently,
this only fixes the case based on the DatabaseMetaData, but in the future
this is the place where the length will be fixed and reserved words will
be detected.
Revision Changes Path
1.27 +37 -2
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/bridge/JDBCCMRFieldBridge.java
Index: JDBCCMRFieldBridge.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/bridge/JDBCCMRFieldBridge.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- JDBCCMRFieldBridge.java 12 Mar 2002 22:25:50 -0000 1.26
+++ JDBCCMRFieldBridge.java 10 Apr 2002 15:18:44 -0000 1.27
@@ -7,7 +7,7 @@
package org.jboss.ejb.plugins.cmp.jdbc.bridge;
import java.lang.reflect.Method;
-import java.sql.Connection;
+import javax.sql.DataSource;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -36,6 +36,7 @@
import org.jboss.ejb.plugins.cmp.jdbc.JDBCContext;
import org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager;
import org.jboss.ejb.plugins.cmp.jdbc.JDBCType;
+import org.jboss.ejb.plugins.cmp.jdbc.SQLUtil;
import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCCMPFieldMetaData;
import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCReadAheadMetaData;
import org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData;
@@ -55,7 +56,7 @@
* One for each role that entity has.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.26 $
+ * @version $Revision: 1.27 $
*/
public class JDBCCMRFieldBridge implements JDBCFieldBridge, CMRFieldBridge {
// ------ Invocation messages ------
@@ -111,6 +112,16 @@
private JDBCRelationshipRoleMetaData metadata;
/**
+ * That data source used to acess the relation table if relevent.
+ */
+ private final DataSource dataSource;
+
+ /**
+ * That the relation table name if relevent.
+ */
+ private final String tableName;
+
+ /**
* Does this cmr field have foreign keys.
*/
private boolean hasForeignKey;
@@ -199,6 +210,16 @@
}
this.log = Logger.getLogger(categoryName);
+ // Get the datasource
+ dataSource = metadata.getRelationMetaData().getDataSource();
+
+ // Fix table name
+ //
+ // This code doesn't work here... The problem each side will generate
+ // the table name and this will only work for simple generation.
+ tableName = SQLUtil.fixTableName(
+ metadata.getRelationMetaData().getDefaultTableName(),
+ dataSource);
//
// Set handles to the related entity's container, cache,
@@ -379,6 +400,20 @@
return metadata.getCMRFieldName();
}
+ /**
+ * Gets the name of the relation table if relevent.
+ */
+ public String getTableName() {
+ return tableName;
+ }
+
+ /**
+ * Gets the datasource of the relation table if relevent.
+ */
+ public DataSource getDataSource() {
+ return dataSource;
+ }
+
/**
* Gets the read ahead meta data.
*/
1.24 +10 -3
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/bridge/JDBCEntityBridge.java
Index: JDBCEntityBridge.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/bridge/JDBCEntityBridge.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- JDBCEntityBridge.java 24 Mar 2002 21:50:44 -0000 1.23
+++ JDBCEntityBridge.java 10 Apr 2002 15:18:44 -0000 1.24
@@ -28,6 +28,7 @@
import org.jboss.ejb.plugins.cmp.jdbc.JDBCContext;
import org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager;
+import org.jboss.ejb.plugins.cmp.jdbc.SQLUtil;
import org.jboss.ejb.plugins.cmp.bridge.EntityBridge;
import org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler;
@@ -53,13 +54,15 @@
* One per cmp entity bean type.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.23 $
+ * @version $Revision: 1.24 $
*/
public class JDBCEntityBridge implements EntityBridge {
private JDBCEntityMetaData metadata;
private JDBCStoreManager manager;
- private DataSource dataSource;
+ private final DataSource dataSource;
+
+ private final String tableName;
/** is the table assumed to exist */
private boolean tableExists;
@@ -97,6 +100,10 @@
metadata.getDataSourceName(), e);
}
+ tableName = SQLUtil.fixTableName(
+ metadata.getDefaultTableName(),
+ dataSource);
+
// CMP fields
loadCMPFields(metadata);
@@ -336,7 +343,7 @@
}
public String getTableName() {
- return metadata.getTableName();
+ return tableName;
}
public Class getPrimaryKeyClass() {
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development