1 package jp.sourceforge.ea2ddl.dao.allcommon.s2dao.internal.sqlcommand;
\r
3 import java.util.ArrayList;
\r
4 import java.util.List;
\r
5 import java.util.Set;
\r
7 import javax.sql.DataSource;
\r
9 import org.seasar.dao.BeanMetaData;
\r
10 import org.seasar.extension.jdbc.PropertyType;
\r
11 import org.seasar.extension.jdbc.StatementFactory;
\r
14 * @author DBFlute(AutoGenerator)
\r
16 public class InternalUpdateModifiedOnlyCommand extends InternalUpdateAutoDynamicCommand {
\r
18 // ===================================================================================
\r
21 public InternalUpdateModifiedOnlyCommand(DataSource dataSource, StatementFactory statementFactory) {
\r
22 super(dataSource, statementFactory);
\r
25 // ===================================================================================
\r
26 // No.1 Point Override
\r
27 // ===================
\r
29 protected PropertyType[] createUpdatePropertyTypes(final BeanMetaData bmd, final Object bean, final String[] propertyNames) {
\r
30 final Set<?> modifiedPropertyNames = getBeanMetaData().getModifiedPropertyNames(bean);
\r
31 final List<PropertyType> types = new ArrayList<PropertyType>();
\r
32 final String timestampPropertyName = bmd.getTimestampPropertyName();
\r
33 final String versionNoPropertyName = bmd.getVersionNoPropertyName();
\r
34 for (int i = 0; i < propertyNames.length; ++i) {
\r
35 final PropertyType pt = bmd.getPropertyType(propertyNames[i]);
\r
36 if (pt.isPrimaryKey() == false) {
\r
37 final String propertyName = pt.getPropertyName();
\r
38 if (propertyName.equalsIgnoreCase(timestampPropertyName)
\r
39 || propertyName.equalsIgnoreCase(versionNoPropertyName)
\r
40 || modifiedPropertyNames.contains(propertyName)) {
\r
45 final PropertyType[] propertyTypes = (PropertyType[]) types.toArray(new PropertyType[types.size()]);
\r
46 return propertyTypes;
\r