/**
  * INTERNAL: writes the first field from each of the owned tables, used for fine-grained
  * pessimistic locking.
  */
 protected void writeForUpdateOfFields(
     ExpressionSQLPrinter printer, SQLSelectStatement statement) {
   for (Iterator iterator = getForUpdateOfFields().iterator(); iterator.hasNext(); ) {
     DatabaseField field = (DatabaseField) iterator.next();
     if (printer.getPlatform().shouldPrintAliasForUpdate()) {
       writeAlias(printer, field, statement);
     } else {
       writeField(printer, field, statement);
     }
   }
 }