From 51b201df5029b854779038f907702de5cb7cc464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Keller?= Date: Thu, 2 Feb 2017 14:47:21 +0100 Subject: [PATCH] Add support for DB2AS400 database Add support for DB2AS400 to DefaultDataFieldMaxValueIncrementerFactory. Apparently, DB2AS400 is using the same syntax for sequence value retrieval as standard DB2. resolves BATCH-2525 --- ...faultDataFieldMaxValueIncrementerFactory.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DefaultDataFieldMaxValueIncrementerFactory.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DefaultDataFieldMaxValueIncrementerFactory.java index 97dd87135..accba4262 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DefaultDataFieldMaxValueIncrementerFactory.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/DefaultDataFieldMaxValueIncrementerFactory.java @@ -16,6 +16,7 @@ package org.springframework.batch.item.database.support; import static org.springframework.batch.support.DatabaseType.DB2; +import static org.springframework.batch.support.DatabaseType.DB2AS400; import static org.springframework.batch.support.DatabaseType.DB2ZOS; import static org.springframework.batch.support.DatabaseType.DERBY; import static org.springframework.batch.support.DatabaseType.H2; @@ -62,9 +63,9 @@ public class DefaultDataFieldMaxValueIncrementerFactory implements DataFieldMaxV private String incrementerColumnName = "ID"; /** - * Public setter for the column name (defaults to "ID") in the incrementer. - * Only used by some platforms (Derby, HSQL, MySQL, SQL Server and Sybase), - * and should be fine for use with Spring Batch meta data as long as the +- * Public setter for the column name (defaults to "ID") in the incrementer. +- * Only used by some platforms (Derby, HSQL, MySQL, SQL Server and Sybase), +- * and should be fine for use with Spring Batch meta data as long as the * default batch schema hasn't been changed. * * @param incrementerColumnName the primary key column name to set @@ -77,11 +78,11 @@ public class DefaultDataFieldMaxValueIncrementerFactory implements DataFieldMaxV this.dataSource = dataSource; } - @Override + @Override public DataFieldMaxValueIncrementer getIncrementer(String incrementerType, String incrementerName) { DatabaseType databaseType = DatabaseType.valueOf(incrementerType.toUpperCase()); - if (databaseType == DB2) { + if (databaseType == DB2 || databaseType == DB2AS400) { return new DB2SequenceMaxValueIncrementer(dataSource, incrementerName); } else if (databaseType == DB2ZOS) { @@ -122,9 +123,8 @@ public class DefaultDataFieldMaxValueIncrementerFactory implements DataFieldMaxV return new SybaseMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName); } throw new IllegalArgumentException("databaseType argument was not on the approved list"); - } - + @Override public boolean isSupportedIncrementerType(String incrementerType) { for (DatabaseType type : DatabaseType.values()) { @@ -147,4 +147,4 @@ public class DefaultDataFieldMaxValueIncrementerFactory implements DataFieldMaxV return types.toArray(new String[types.size()]); } -} +} \ No newline at end of file