User: dsundstrom
Date: 02/02/26 16:07:59
Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc
JDBCLoadEntityCommand.java
JDBCStoreEntityCommand.java JDBCStoreManager.java
JDBCUtil.java ReadAheadCache.java SQLUtil.java
Log:
Moved extraneous log messages to trace level.
Wrapped log messages with isEnabled checks.
Revision Changes Path
1.17 +7 -3
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java
Index: JDBCLoadEntityCommand.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- JDBCLoadEntityCommand.java 16 Feb 2002 10:37:54 -0000 1.16
+++ JDBCLoadEntityCommand.java 27 Feb 2002 00:07:58 -0000 1.17
@@ -40,7 +40,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Justin Forder</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
* @author <a href="mailto:[EMAIL PROTECTED]">danch (Dan Christopherson)</a>
- * @version $Revision: 1.16 $
+ * @version $Revision: 1.17 $
*/
public class JDBCLoadEntityCommand {
private final JDBCStoreManager manager;
@@ -98,7 +98,9 @@
con = entity.getDataSource().getConnection();
// create the statement
- log.debug("Executing SQL: " + sql);
+ if(log.isDebugEnabled()) {
+ log.debug("Executing SQL: " + sql);
+ }
ps = con.prepareStatement(sql);
// set the parameters
@@ -240,7 +242,9 @@
// get the load fields
ArrayList loadFields = new ArrayList(entity.getFields().size());
if(requiredField == null) {
- log.debug("Default eager-load for entity");
+ if(log.isTraceEnabled()) {
+ log.trace("Default eager-load for entity");
+ }
loadFields.addAll(entity.getEagerLoadFields());
} else {
loadFields.add(requiredField);
1.12 +11 -5
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreEntityCommand.java
Index: JDBCStoreEntityCommand.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreEntityCommand.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- JDBCStoreEntityCommand.java 15 Jan 2002 22:27:34 -0000 1.11
+++ JDBCStoreEntityCommand.java 27 Feb 2002 00:07:58 -0000 1.12
@@ -29,7 +29,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]">Sebastien Alborini</a>
- * @version $Revision: 1.11 $
+ * @version $Revision: 1.12 $
*/
public class JDBCStoreEntityCommand {
private JDBCStoreManager manager;
@@ -51,8 +51,10 @@
List dirtyFields = entity.getDirtyFields(ctx);
if(dirtyFields.isEmpty()) {
- log.debug("Store command NOT executed. Entity is not dirty: pk=" +
- ctx.getId());
+ if(log.isTraceEnabled()) {
+ log.trace("Store command NOT executed. Entity is not dirty: pk=" +
+ ctx.getId());
+ }
return;
}
@@ -71,7 +73,9 @@
con = entity.getDataSource().getConnection();
// create the statement
- log.debug("Executing SQL: " + sql);
+ if(log.isDebugEnabled()) {
+ log.debug("Executing SQL: " + sql);
+ }
ps = con.prepareStatement(sql.toString());
// set the parameters
@@ -99,7 +103,9 @@
"affected row: rowsAffected=" + rowsAffected +
"id=" + ctx.getId());
}
- log.debug("Create: Rows affected = " + rowsAffected);
+ if(log.isDebugEnabled()) {
+ log.debug("Create: Rows affected = " + rowsAffected);
+ }
// Mark the inserted fields as clean.
for(Iterator iter = dirtyFields.iterator(); iter.hasNext(); ) {
1.28 +13 -22
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java
Index: JDBCStoreManager.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStoreManager.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- JDBCStoreManager.java 16 Feb 2002 10:37:54 -0000 1.27
+++ JDBCStoreManager.java 27 Feb 2002 00:07:58 -0000 1.28
@@ -31,6 +31,7 @@
import org.jboss.ejb.EntityPersistenceStore;
import org.jboss.ejb.EntityEnterpriseContext;
import org.jboss.ejb.ListCacheKey;
+import org.jboss.ejb.plugins.cmp.ejbql.Catalog;
import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge;
import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
@@ -58,7 +59,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
* @see org.jboss.ejb.EntityPersistenceStore
- * @version $Revision: 1.27 $
+ * @version $Revision: 1.28 $
*/
public class JDBCStoreManager implements EntityPersistenceStore {
@@ -103,24 +104,11 @@
private JDBCPassivateEntityCommand passivateEntityCommand;
// commands
-// private JDBCFindByForeignKeyCommand findByForeignKeyCommand;
private JDBCLoadRelationCommand loadRelationCommand;
private JDBCDeleteRelationsCommand deleteRelationsCommand;
private JDBCInsertRelationsCommand insertRelationsCommand;
/**
- * A map of data preloaded within some transaction for some entity. This map
- * is keyed by Transaction, entityKey and CMP field name
- * and the data is Object containing the field value.
- */
-// private Map preloadedData = new HashMap();
-
- /**
- * A set of transactions for which data was preloaded.
- */
-// private Set transactions = new HashSet();
-
- /**
* A Transaction manager so that we can link preloaded data to a transaction
*/
private TransactionManager tm;
@@ -287,6 +275,14 @@
// create the bridge between java land and this engine (sql land)
entityBridge = new JDBCEntityBridge(metaData, this);
+ // add the entity bridge to the catalog
+ Catalog catalog = (Catalog)getApplicationData("CATALOG");
+ if(catalog == null) {
+ catalog = new Catalog();
+ putApplicationData("CATALOG", catalog);
+ }
+ catalog.addEntity(entityBridge);
+
// create the read ahead cache
readAheadCache = new ReadAheadCache(this);
readAheadCache.create();
@@ -402,7 +398,9 @@
public void loadEntity(EntityEnterpriseContext ctx) {
// is any on the data already in the entity valid
if(!ctx.isValid()) {
- log.debug("RESET PERSISTENCE CONTEXT: id="+ctx.getId());
+ if(log.isTraceEnabled()) {
+ log.trace("RESET PERSISTENCE CONTEXT: id="+ctx.getId());
+ }
entityBridge.resetPersistenceContext(ctx);
}
@@ -462,13 +460,6 @@
//
// Relationship Commands
//
-// public Collection findByForeignKey(
-// Object foreignKey,
-// JDBCCMRFieldBridge cmrField) {
-//
-// return findByForeignKeyCommand.execute(foreignKey, cmrField);
-// }
-
public Collection loadRelation(JDBCCMRFieldBridge cmrField, Object pk) {
return loadRelationCommand.execute(cmrField, pk);
}
1.9 +9 -9 jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCUtil.java
Index: JDBCUtil.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCUtil.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JDBCUtil.java 24 Nov 2001 21:39:10 -0000 1.8
+++ JDBCUtil.java 27 Feb 2002 00:07:59 -0000 1.9
@@ -43,7 +43,7 @@
* parameters and loading query results.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.8 $
+ * @version $Revision: 1.9 $
*/
public class JDBCUtil
{
@@ -132,8 +132,8 @@
*/
public static void setParameter(Logger log, PreparedStatement ps, int index, int
jdbcType, Object value) throws SQLException
{
- if(log.isDebugEnabled()) {
- log.debug("Set parameter: " +
+ if(log.isTraceEnabled()) {
+ log.trace("Set parameter: " +
"index=" + index + ", " +
"jdbcType=" + getJDBCTypeName(jdbcType) + ", " +
"value=" + ((value == null) ? "NULL" : value));
@@ -193,24 +193,24 @@
Object[] returnValue = new Object[1];
if(getNonBinaryResult(rs, index, destination, returnValue))
{
- if(log.isDebugEnabled()) {
- log.debug("Get result: index=" + index +
+ if(log.isTraceEnabled()) {
+ log.trace("Get result: index=" + index +
", javaType=" + destination.getName() +
", Simple, value=" + returnValue[0]);
}
return returnValue[0];
} else if(getObjectResult(rs, index, destination, returnValue))
{
- if(log.isDebugEnabled()) {
- log.debug("Get result: index=" + index +
+ if(log.isTraceEnabled()) {
+ log.trace("Get result: index=" + index +
", javaType=" + destination.getName() +
", Object, value=" + returnValue[0]);
}
return returnValue[0];
} else if(getBinaryResult(rs, index, destination, returnValue))
{
- if(log.isDebugEnabled()) {
- log.debug("Get result: index=" + index +
+ if(log.isTraceEnabled()) {
+ log.trace("Get result: index=" + index +
", javaType=" + destination.getName() +
", Binary, value=" + returnValue[0]);
}
1.4 +40 -23
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/ReadAheadCache.java
Index: ReadAheadCache.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/ReadAheadCache.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ReadAheadCache.java 16 Feb 2002 10:37:54 -0000 1.3
+++ ReadAheadCache.java 27 Feb 2002 00:07:59 -0000 1.4
@@ -31,7 +31,7 @@
* basis. The read ahead data for each entity is stored with a soft reference.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class ReadAheadCache {
/**
@@ -141,7 +141,9 @@
iter = dereferencedResults.iterator();
while(iter.hasNext()) {
Object obj = iter.next();
- log.debug("Removing dereferenced finder results: "+obj);
+ if(log.isTraceEnabled()) {
+ log.trace("Removing dereferenced finder results: " + obj);
+ }
listCache.remove(obj);
}
}
@@ -192,17 +194,21 @@
* @param ctx the context that will be loaded
*/
public void load(EntityEnterpriseContext ctx) {
- log.debug("load data:" +
- " entity="+manager.getEntityBridge().getEntityName()+
- " pk="+ctx.getId());
+ if(log.isTraceEnabled()) {
+ log.trace("load data:" +
+ " entity="+manager.getEntityBridge().getEntityName()+
+ " pk="+ctx.getId());
+ }
// get the preload data map
Map preloadDataMap = getPreloadDataMap(ctx.getId(), false);
if(preloadDataMap == null) {
// no preloaded data for this entity
- log.debug("No preload data found:"+
- " entity="+manager.getEntityBridge().getEntityName()+
- " pk="+ctx.getId());
+ if(log.isTraceEnabled()) {
+ log.trace("No preload data found:"+
+ " entity="+manager.getEntityBridge().getEntityName()+
+ " pk="+ctx.getId());
+ }
return;
}
@@ -241,10 +247,12 @@
JDBCCMRFieldBridge cmrField = (JDBCCMRFieldBridge)field;
if(!cmrField.isLoaded(ctx)) {
- log.debug("Preloading data:" +
- " entity="+manager.getEntityBridge().getEntityName()+
- " pk="+ctx.getId()+
- " cmrField="+cmrField.getFieldName());
+ if(log.isTraceEnabled()) {
+ log.trace("Preloading data:" +
+ " entity="+manager.getEntityBridge().getEntityName()+
+ " pk="+ctx.getId()+
+ " cmrField="+cmrField.getFieldName());
+ }
// set the value
cmrField.loadPreloadedValue(ctx, (List)value);
@@ -257,10 +265,12 @@
relatedReadAheadCache.addFinderResult(new FinderResults(
(List)value, cmrField.getReadAhead(), null, null));
} else {
- log.debug("CMRField already loaded:" +
- " entity="+manager.getEntityBridge().getEntityName()+
- " pk="+ctx.getId()+
- " cmrField="+cmrField.getFieldName());
+ if(log.isTraceEnabled()) {
+ log.trace("CMRField already loaded:" +
+ " entity="+manager.getEntityBridge().getEntityName()+
+ " pk="+ctx.getId()+
+ " cmrField="+cmrField.getFieldName());
+ }
}
}
}
@@ -285,10 +295,12 @@
}
}
- log.debug("Add preload data:" +
- " entity="+manager.getEntityBridge().getEntityName()+
- " pk="+entityPrimaryKey+
- " field="+field.getFieldName());
+ if(log.isTraceEnabled()) {
+ log.trace("Add preload data:" +
+ " entity="+manager.getEntityBridge().getEntityName()+
+ " pk="+entityPrimaryKey+
+ " field="+field.getFieldName());
+ }
// convert null values to a null value standing object
if(fieldValue == null) {
@@ -300,8 +312,10 @@
}
public synchronized void removeCachedData(Object primaryKey) {
- log.debug("Removing cached data for "+primaryKey);
-
+ if(log.isTraceEnabled()) {
+ log.trace("Removing cached data for "+primaryKey);
+ }
+
// remove the preloaded data
manager.removeEntityTxData(new PreloadKey(primaryKey));
@@ -324,7 +338,10 @@
}
// a reference to the old finder set was not found so remove it
- log.debug("Removing dereferenced finder results: "+oldInfo.finderResults);
+ if(log.isTraceEnabled()) {
+ log.trace("Removing dereferenced finder results: " +
+ oldInfo.finderResults);
+ }
listCache.remove(oldInfo.finderResults);
}
1.7 +167 -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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SQLUtil.java 12 Feb 2002 06:17:15 -0000 1.6
+++ SQLUtil.java 27 Feb 2002 00:07:59 -0000 1.7
@@ -12,13 +12,16 @@
import java.util.Iterator;
import java.util.List;
+import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge;
+import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge;
+import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge;
import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCFieldBridge;
/**
* SQLUtil helps with building sql statements.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
public class SQLUtil {
// =======================================================================
@@ -303,6 +306,162 @@
return buf.toString();
}
+
+ // =======================================================================
+ // Is [Not] Null Clause
+ // columnName0 IS [NOT] NULL [AND columnName1 IS [NOT] NULL [...]]
+ // =======================================================================
+
+ /**
+ * Returns identifier.columnName0 IS [NOT] NULL
+ * [AND identifier.columnName1 IS [NOT] NULL
+ * [AND identifier.columnName2 IS [NOT] NULL [...]]]
+ */
+ public static String getIsNullClause(
+ boolean not, List fields, String identifier) {
+
+ StringBuffer buf = new StringBuffer();
+
+ List types = getJDBCTypes(fields);
+ for(Iterator iter = types.iterator(); iter.hasNext();) {
+ JDBCType type = (JDBCType)iter.next();
+ buf.append(getIsNullClause(not, type, identifier));
+ if(iter.hasNext()) {
+ buf.append(" AND ");
+ }
+ }
+ return buf.toString();
+ }
+
+ /**
+ * Returns identifier.columnName0 IS [NOT] NULL
+ * [AND identifier.columnName1 IS [NOT] NULL
+ * [AND identifier.columnName2 IS [NOT] NULL [...]]]
+ */
+ public static String getIsNullClause(
+ boolean not, JDBCFieldBridge field, String identifier) {
+
+ return getIsNullClause(not, field.getJDBCType(), identifier);
+ }
+
+ /**
+ * Returns identifier.columnName0 IS [NOT] NULL
+ * [AND identifier.columnName1 IS [NOT] NULL
+ * [AND identifier.columnName2 IS [NOT] NULL [...]]]
+ */
+ public static String getIsNullClause(
+ boolean not, JDBCType type, String identifier) {
+
+ if(identifier.length() > 0) {
+ identifier += ".";
+ }
+
+ String[] columnNames = type.getColumnNames();
+
+ StringBuffer buf = new StringBuffer();
+ for(int i=0; i<columnNames.length; i++) {
+ if(i!=0) {
+ buf.append(" AND ");
+ }
+ buf.append(identifier).append(columnNames[i]);
+ buf.append(" IS");
+ if(not) {
+ buf.append(" NOT");
+ }
+ buf.append(" NULL");
+ }
+ return buf.toString();
+ }
+
+ // =======================================================================
+ // Join Clause
+ // parent.pkColumnName0=child.fkColumnName0
+ // [AND parent.pkColumnName1=child.fkColumnName1
+ // [AND parent.pkColumnName2=child.fkColumnName2 [...]]]
+ // =======================================================================
+
+ public static String getJoinClause(
+ JDBCCMRFieldBridge cmrField,
+ String parentAlias,
+ String childAlias) {
+
+ StringBuffer buf = new StringBuffer();
+
+ JDBCEntityBridge parentEntity = cmrField.getEntity();
+ JDBCEntityBridge childEntity =
+ (JDBCEntityBridge)cmrField.getRelatedEntity();
+
+ JDBCCMPFieldBridge parentField;
+ JDBCCMPFieldBridge childField;
+
+ if(cmrField.hasForeignKey()) {
+
+ // parent has the foreign keys
+ List parentFkFields = cmrField.getForeignKeyFields();
+ for(Iterator iter = parentFkFields.iterator(); iter.hasNext(); ) {
+
+ parentField = (JDBCCMPFieldBridge)iter.next();
+ childField = childEntity.getCMPFieldByName(
+ parentField.getFieldName());
+
+ buf.append(getJoinClause(
+ parentField, parentAlias, childField, childAlias));
+
+ if(iter.hasNext()) {
+ buf.append(" AND ");
+ }
+ }
+ } else {
+
+ // child has the foreign keys
+ List childFkFields =
+ cmrField.getRelatedCMRField().getForeignKeyFields();
+ for(Iterator iter = childFkFields.iterator(); iter.hasNext(); ) {
+
+ childField = (JDBCCMPFieldBridge)iter.next();
+ parentField = parentEntity.getCMPFieldByName(
+ childField.getFieldName());
+
+ // add the sql
+ buf.append(SQLUtil.getJoinClause(
+ parentField, parentAlias, childField, childAlias));
+ if(iter.hasNext()) {
+ buf.append(" AND ");
+ }
+ }
+ }
+ return buf.toString();
+ }
+
+ public static String getRelationTableJoinClause(
+ JDBCCMRFieldBridge cmrField,
+ String parentAlias,
+ String relationTableAlias) {
+
+ StringBuffer buf = new StringBuffer();
+
+ JDBCEntityBridge parentEntity = cmrField.getEntity();
+ JDBCCMPFieldBridge parentField;
+ JDBCCMPFieldBridge relationField;
+
+ // parent to relation table join
+ List parentFields = cmrField.getTableKeyFields();
+ for(Iterator iter = parentFields.iterator(); iter.hasNext(); ) {
+
+ relationField = (JDBCCMPFieldBridge)iter.next();
+ parentField = parentEntity.getCMPFieldByName(
+ relationField.getFieldName());
+
+ buf.append(SQLUtil.getJoinClause(
+ parentField, parentAlias, relationField, relationTableAlias));
+
+ if(iter.hasNext()) {
+ buf.append(" AND ");
+ }
+ }
+ return buf.toString();
+ }
+
/**
* Returns parent.pkColumnName0=child.fkColumnName0
* [AND parent.pkColumnName1=child.fkColumnName1
@@ -376,6 +535,13 @@
}
return buf.toString();
}
+
+ // =======================================================================
+ // Self Compare Where Clause
+ // fromIdentifier.pkColumnName0=toIdentifier.fkColumnName0
+ // [AND fromIdentifier.pkColumnName1=toIdentifier.fkColumnName1
+ // [AND fromIdentifier.pkColumnName2=toIdentifier.fkColumnName2 [...]]]
+ // =======================================================================
public static String getSelfCompareWhereClause(
List fields, String fromIdentifier, String toIdentifier) {
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development