User: patriot1burke
Date: 01/12/04 21:07:17
Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata
JDBCTypeMappingMetaData.java
JDBCRelationMetaData.java
JDBCFunctionMappingMetaData.java
JDBCEntityMetaData.java
Log:
changed select-for-update to row-locking. Also, row-locking now uses
row-locking-template defined in type-mappings. This way we can have
different row-locking syntaxes between different DBs.
Revision Changes Path
1.9 +17 -1
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCTypeMappingMetaData.java
Index: JDBCTypeMappingMetaData.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCTypeMappingMetaData.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JDBCTypeMappingMetaData.java 2001/11/26 03:12:27 1.8
+++ JDBCTypeMappingMetaData.java 2001/12/05 05:07:17 1.9
@@ -17,7 +17,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
* @author <a href="[EMAIL PROTECTED]">Sebastien Alborini</a>
- * @version $Revision: 1.8 $
+ * @version $Revision: 1.9 $
*/
public final class JDBCTypeMappingMetaData {
@@ -34,6 +34,7 @@
private final String aliasHeaderPrefix;
private final String aliasHeaderSuffix;
private final int aliasMaxLength;
+ private JDBCFunctionMappingMetaData rowLocking = null;
/**
* Constructs a mapping with the data contained in the type-mapping xml element
@@ -47,6 +48,12 @@
// get the name of this type-mapping
name = MetaData.getUniqueChildContent(element, "name");
+
+ String rowLockingSQL = MetaData.getUniqueChildContent(element,
"row-locking-template");
+ if (rowLockingSQL != null && !rowLockingSQL.trim().equals(""))
+ {
+ rowLocking = new JDBCFunctionMappingMetaData("row-locking", rowLockingSQL);
+ }
// get the mappings
Iterator iterator = MetaData.getChildrenByTagName(element, "mapping");
@@ -188,6 +195,15 @@
public JDBCFunctionMappingMetaData getFunctionMapping(String name) {
return (JDBCFunctionMappingMetaData)functionMappings.get(name.toLowerCase());
+ }
+
+
+ /**
+ * Returns rowLocking SQL template.
+ */
+ public JDBCFunctionMappingMetaData getRowLockingTemplate()
+ {
+ return rowLocking;
}
private void addDefaultFunctionMapping() {
1.9 +10 -10
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationMetaData.java
Index: JDBCRelationMetaData.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCRelationMetaData.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JDBCRelationMetaData.java 2001/12/01 21:55:05 1.8
+++ JDBCRelationMetaData.java 2001/12/05 05:07:17 1.9
@@ -25,7 +25,7 @@
* have set methods.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.8 $
+ * @version $Revision: 1.9 $
*/
public final class JDBCRelationMetaData {
private final static int TABLE = 1;
@@ -73,7 +73,7 @@
private final boolean removeTable;
/** should we use 'SELECT ... FOR UPDATE' syntax? */
- private final boolean selectForUpdate;
+ private final boolean rowLocking;
/** should the table have a primary key constraint? */
private final boolean primaryKeyConstraint;
@@ -114,7 +114,7 @@
typeMapping = null;
createTable = false;
removeTable = false;
- selectForUpdate = false;
+ rowLocking = false;
primaryKeyConstraint = false;
readOnly = false;
readTimeOut = -1;
@@ -206,7 +206,7 @@
tableName = defaultValues.getTableName();
createTable = defaultValues.getCreateTable();
removeTable = defaultValues.getRemoveTable();
- selectForUpdate = defaultValues.hasSelectForUpdate();
+ rowLocking = defaultValues.hasRowLocking();
primaryKeyConstraint = defaultValues.hasPrimaryKeyConstraint();
readOnly = defaultValues.isReadOnly();
readTimeOut = defaultValues.getReadTimeOut();
@@ -285,12 +285,12 @@
// select for update
String sForUpString = MetaData.getOptionalChildContent(
- mappingElement, "select-for-update");
+ mappingElement, "row-locking");
if(sForUpString != null) {
- selectForUpdate = !isReadOnly() &&
+ rowLocking = !isReadOnly() &&
(Boolean.valueOf(sForUpString).booleanValue());
} else {
- selectForUpdate = defaultValues.hasSelectForUpdate();
+ rowLocking = defaultValues.hasRowLocking();
}
// primary key constraint? If not provided, keep default.
@@ -536,10 +536,10 @@
}
/**
- * Should select queries use the for update clause.
+ * Should select queries do row locking
*/
- public boolean hasSelectForUpdate() {
- return selectForUpdate;
+ public boolean hasRowLocking() {
+ return rowLocking;
}
private String createDefaultTableName() {
1.4 +13 -3
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCFunctionMappingMetaData.java
Index: JDBCFunctionMappingMetaData.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCFunctionMappingMetaData.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JDBCFunctionMappingMetaData.java 2001/11/26 03:12:27 1.3
+++ JDBCFunctionMappingMetaData.java 2001/12/05 05:07:17 1.4
@@ -9,8 +9,8 @@
public final class JDBCFunctionMappingMetaData {
private final String functionName;
- private final String[] sqlChunks;
- private final int[] parameters;
+ private String[] sqlChunks;
+ private int[] parameters;
public JDBCFunctionMappingMetaData(String functionName, String[] sqlChunks,
int[] parameters) {
this.functionName = functionName;
@@ -22,7 +22,17 @@
functionName = MetaData.getUniqueChildContent(element, "function-name");
String sql = MetaData.getUniqueChildContent(element, "function-sql");
-
+ initFromString(sql);
+ }
+
+ public JDBCFunctionMappingMetaData(String functionName, String sql) throws
DeploymentException
+ {
+ this.functionName = functionName;
+ initFromString(sql);
+ }
+
+ protected void initFromString(String sql) throws DeploymentException
+ {
ArrayList chunkList = new ArrayList();
ArrayList parameterList = new ArrayList();
1.13 +11 -11
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCEntityMetaData.java
Index: JDBCEntityMetaData.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/metadata/JDBCEntityMetaData.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- JDBCEntityMetaData.java 2001/11/26 03:12:27 1.12
+++ JDBCEntityMetaData.java 2001/12/05 05:07:17 1.13
@@ -27,7 +27,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
* @author <a href="[EMAIL PROTECTED]">Sebastien Alborini</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
*/
public final class JDBCEntityMetaData {
/**
@@ -103,7 +103,7 @@
/**
* Should we use 'SELECT ... FOR UPDATE' syntax when loading?
*/
- private final boolean selectForUpdate;
+ private final boolean rowLocking;
/**
* Is this entity read-only?
@@ -285,7 +285,7 @@
typeMapping = null;
createTable = false;
removeTable = false;
- selectForUpdate = false;
+ rowLocking = false;
primaryKeyConstraint = false;
readOnly = false;
readTimeOut = -1;
@@ -395,12 +395,12 @@
}
String sForUpStr =
- MetaData.getOptionalChildContent(element, "select-for-update");
+ MetaData.getOptionalChildContent(element, "row-locking");
if(sForUpStr != null) {
- selectForUpdate =
+ rowLocking =
!isReadOnly() && (Boolean.valueOf(sForUpStr).booleanValue());
} else {
- selectForUpdate = defaultValues.hasSelectForUpdate();
+ rowLocking = defaultValues.hasRowLocking();
}
// primary key constraint? If not provided, keep default.
@@ -775,13 +775,13 @@
}
/**
- * Gets the flag used to determine if the store manager should add a for
- * update clause when selecting data from the table
- * @return true if the store manager should add a for update
+ * Gets the flag used to determine if the store manager should do row locking
+ * when loading entity beans
+ * @return true if the store manager should add a row locking
* clause when selecting data from the table
*/
- public boolean hasSelectForUpdate() {
- return selectForUpdate;
+ public boolean hasRowLocking() {
+ return rowLocking;
}
/**
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development