User: dsundstrom Date: 02/01/15 14:27:34 Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc JDBCStoreEntityCommand.java Log: Converted from field arrays to field lists. Revision Changes Path 1.11 +22 -19 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.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- JDBCStoreEntityCommand.java 2002/01/05 12:08:51 1.10 +++ JDBCStoreEntityCommand.java 2002/01/15 22:27:34 1.11 @@ -9,10 +9,12 @@ import java.sql.Connection; import java.sql.PreparedStatement; +import java.util.Iterator; +import java.util.List; import javax.ejb.EJBException; import org.jboss.ejb.EntityEnterpriseContext; -import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMPFieldBridge; +import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCFieldBridge; import org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge; import org.jboss.logging.Logger; @@ -27,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.10 $ + * @version $Revision: 1.11 $ */ public class JDBCStoreEntityCommand { private JDBCStoreManager manager; @@ -46,23 +48,20 @@ } public void execute(EntityEnterpriseContext ctx) { - JDBCCMPFieldBridge[] dirtyFields = - (JDBCCMPFieldBridge[])entity.getDirtyFields(ctx); - - boolean debug = log.isDebugEnabled(); - if(dirtyFields.length == 0) { - if (debug) - log.debug("Store command NOT executed. Entity is not dirty: pk=" + + List dirtyFields = entity.getDirtyFields(ctx); + + if(dirtyFields.isEmpty()) { + log.debug("Store command NOT executed. Entity is not dirty: pk=" + ctx.getId()); return; } // generate sql - StringBuffer sql = new StringBuffer(); + StringBuffer sql = new StringBuffer(); sql.append("UPDATE ").append(entity.getTableName()); sql.append(" SET ").append(SQLUtil.getSetClause(dirtyFields)); sql.append(" WHERE ").append( - SQLUtil.getWhereClause(entity.getJDBCPrimaryKeyFields())); + SQLUtil.getWhereClause(entity.getPrimaryKeyFields())); Connection con = null; PreparedStatement ps = null; @@ -70,19 +69,23 @@ try { // get the connection con = entity.getDataSource().getConnection(); - + // create the statement - if (debug) - log.debug("Executing SQL: " + sql); + log.debug("Executing SQL: " + sql); ps = con.prepareStatement(sql.toString()); - + // set the parameters int index = 1; - index = entity.setInstanceParameters(ps, index, ctx, dirtyFields); + for(Iterator iter = dirtyFields.iterator(); iter.hasNext(); ) { + JDBCFieldBridge field = (JDBCFieldBridge)iter.next(); + index = field.setInstanceParameters(ps, index, ctx); + } index = entity.setPrimaryKeyParameters(ps, index, ctx.getId()); // execute statement rowsAffected = ps.executeUpdate(); + } catch(EJBException e) { + throw e; } catch(Exception e) { throw new EJBException("Store failed", e); } finally { @@ -96,12 +99,12 @@ "affected row: rowsAffected=" + rowsAffected + "id=" + ctx.getId()); } - if (debug) - log.debug("Create: Rows affected = " + rowsAffected); + log.debug("Create: Rows affected = " + rowsAffected); // Mark the inserted fields as clean. - for(int i=0; i<dirtyFields.length; i++) { - dirtyFields[i].setClean(ctx); + for(Iterator iter = dirtyFields.iterator(); iter.hasNext(); ) { + JDBCFieldBridge field = (JDBCFieldBridge)iter.next(); + field.setClean(ctx); } } }
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development