@Override
	public int[] executeBatch(String sql, List<Object> list) {
		if (list.isEmpty() == true) {
			return new int[] {};
		}
		Iterator<Object> iterator = list.iterator();
		if (iterator.hasNext() == false) {
			return new int[] {};
		}
		Connection connection = null;
		PreparedStatement ps = null;
		try {
			PropertyDesc.cacheModeOn();
			connection = getConnection();
			Object object = iterator.next();

			Map<String, ParameterValue> values = new HashMap<>();
			addValues(values, object);
			sql = getSql(sql, dialect);
			ps = createPreparedStatement(connection, sql, values, ExecuteType.UPDATE, dialect, null);
			PreparedStatementUtil.addBatch(ps, sqlLogRegistry);

			while (iterator.hasNext()) {
				object = iterator.next();

				Node node = parse(sql);
				values = new HashMap<>();
				addValues(values, object);
				CommandContext ctx = new CommandContext(dialect);
				ctx.addArgs(values);
				node.accept(ctx);
				List<Object> bindVariables = ctx.getBindVariables();
				List<Integer> bindVariableTypes = ctx.getBindVariableTypes();
				bindArgs(ps, bindVariables, bindVariableTypes, ExecuteType.UPDATE, dialect);
				PreparedStatementUtil.addBatch(ps, sqlLogRegistry);
			}
			return PreparedStatementUtil.executeBatch(ps, sqlLogRegistry);
		} finally {
			PropertyDesc.cacheModeOff();
			try {
				StatementUtil.close(ps);
			} finally {
				ConnectionUtil.close(connection);
			}
		}
	}
@ Override public int [ ] executeBatch ( String sql , List < Object > list ) { if ( list . isEmpty ( ) == true ) { return new int [ ] { } ; } Iterator < Object > iterator = list . iterator ( ) ; if ( iterator . hasNext ( ) == false ) { return new int [ ] { } ; } Connection connection = null ; PreparedStatement ps = null ; try { PropertyDesc . cacheModeOn ( ) ; connection = getConnection ( ) ; Object object = iterator . next ( ) ; Map < String , ParameterValue > values = new HashMap < > ( ) ; addValues ( values , object ) ; sql = getSql ( sql , dialect ) ; ps = createPreparedStatement ( connection , sql , values , ExecuteType . UPDATE , dialect , null ) ; PreparedStatementUtil . addBatch ( ps , sqlLogRegistry ) ; while ( iterator . hasNext ( ) ) { object = iterator . next ( ) ; Node node = parse ( sql ) ; values = new HashMap < > ( ) ; addValues ( values , object ) ; CommandContext ctx = new CommandContext ( dialect ) ; ctx . addArgs ( values ) ; node . accept ( ctx ) ; List < Object > bindVariables = ctx . getBindVariables ( ) ; List < Integer > bindVariableTypes = ctx . getBindVariableTypes ( ) ; bindArgs ( ps , bindVariables , bindVariableTypes , ExecuteType . UPDATE , dialect ) ; PreparedStatementUtil . addBatch ( ps , sqlLogRegistry ) ; } return PreparedStatementUtil . executeBatch ( ps , sqlLogRegistry ) ; } finally { PropertyDesc . cacheModeOff ( ) ; try { StatementUtil . close ( ps ) ; } finally { ConnectionUtil . close ( connection ) ; } } }
Unsupported next list.
<ul>
<li>@Id
<li>@Timespamp
<li>@VersionNo
<li>Locking
</ul>