code: @SuppressWarnings("unchecked")
  	@Override
  	public <E> int delete(final Class<? extends E> entityType, final Object... keys) {
  		@SuppressWarnings("rawtypes")
  		EntityHandler handler = this.getEntityHandler();
  		if (!handler.getEntityType().isAssignableFrom(entityType)) {
  			throw new IllegalArgumentException("Entity type not supported");
  		}
  
  		try {
  			TableMetadata metadata = handler.getMetadata(this.transactionManager, entityType);
  			TableMetadata.Column keyColumn = null;
  			List<? extends TableMetadata.Column> keyColumns = metadata.getKeyColumns();
  			if (keyColumns.size() == 1) {
  				keyColumn = keyColumns.get(0);
  			} else if (keyColumns.isEmpty()) {
  				keyColumn = metadata.getColumns().get(0);
  			} else {
  				throw new IllegalArgumentException("Entity has multiple keys");
  			}
  			return delete(entityType).in(keyColumn.getCamelColumnName(), keys).count();
  		} catch (SQLException e) {
  			throw new EntitySqlRuntimeException(SqlKind.DELETE, e);
  		}
  	}
docs: {@inheritDoc}
  
  @see jp.co.future.uroborosql.SqlAgent#delete(java.lang.Class, java.lang.Object[])