提交 67515726 authored 作者: Evgenij Ryazanov's avatar Evgenij Ryazanov

Fix getGeneratedKeys() with specified columns in another order

上级 1ae95cff
...@@ -95,11 +95,13 @@ public final class GeneratedKeys { ...@@ -95,11 +95,13 @@ public final class GeneratedKeys {
int[] indices = (int[]) generatedKeysRequest; int[] indices = (int[]) generatedKeysRequest;
Column[] columns = table.getColumns(); Column[] columns = table.getColumns();
int cnt = columns.length; int cnt = columns.length;
this.columns.clear();
for (int idx : indices) { for (int idx : indices) {
if (idx >= 1 && idx <= cnt) { if (idx >= 1 && idx <= cnt) {
Column column = columns[idx - 1]; Column column = columns[idx - 1];
rs.addColumn(column.getName(), DataType.convertTypeToSQLType(column.getType()), rs.addColumn(column.getName(), DataType.convertTypeToSQLType(column.getType()),
MathUtils.convertLongToInt(column.getPrecision()), column.getScale()); MathUtils.convertLongToInt(column.getPrecision()), column.getScale());
this.columns.add(column);
} }
} }
} else { } else {
...@@ -108,11 +110,13 @@ public final class GeneratedKeys { ...@@ -108,11 +110,13 @@ public final class GeneratedKeys {
} else if (generatedKeysRequest instanceof String[]) { } else if (generatedKeysRequest instanceof String[]) {
if (table != null) { if (table != null) {
String[] names = (String[]) generatedKeysRequest; String[] names = (String[]) generatedKeysRequest;
this.columns.clear();
for (String name : names) { for (String name : names) {
try { try {
Column column = table.getColumn(name); Column column = table.getColumn(name);
rs.addColumn(column.getName(), DataType.convertTypeToSQLType(column.getType()), rs.addColumn(column.getName(), DataType.convertTypeToSQLType(column.getType()),
MathUtils.convertLongToInt(column.getPrecision()), column.getScale()); MathUtils.convertLongToInt(column.getPrecision()), column.getScale());
this.columns.add(column);
} catch (DbException e) { } catch (DbException e) {
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论