public String getOptimisticLockColumnName(TableIdentifier identifier) { return delegate==null?null:delegate.getOptimisticLockColumnName(identifier); }
private void bindColumnsToVersioning(Table table, RootClass rc, Set<Column> processed, Mapping mapping) { TableIdentifier identifier = TableIdentifier.create(table); String optimisticLockColumnName = revengStrategy.getOptimisticLockColumnName(identifier); if(optimisticLockColumnName!=null) { Column column = table.getColumn(new Column(optimisticLockColumnName)); if(column==null) { log.warn("Column " + column + " wanted for <version>/<timestamp> not found in " + identifier); } else { bindVersionProperty(table, identifier, column, rc, processed, mapping); } } else { log.debug("Scanning " + identifier + " for <version>/<timestamp> columns."); Iterator<?> columnIterator = table.getColumnIterator(); while(columnIterator.hasNext()) { Column column = (Column) columnIterator.next(); boolean useIt = revengStrategy.useColumnForOptimisticLock(identifier, column.getName()); if(useIt && !processed.contains(column)) { bindVersionProperty( table, identifier, column, rc, processed, mapping ); return; } } log.debug("No columns reported while scanning for <version>/<timestamp> columns in " + identifier); } }