File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed
java/org/mybatis/dynamic/sql/util
kotlin/org/mybatis/dynamic/sql/util/kotlin/mybatis3 Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change 23
23
import org .mybatis .dynamic .sql .select .render .SelectStatementProvider ;
24
24
import org .mybatis .dynamic .sql .update .render .UpdateStatementProvider ;
25
25
26
+ import java .util .List ;
27
+ import java .util .Map ;
28
+ import java .util .stream .Collectors ;
29
+
26
30
/**
27
31
* Adapter for use with MyBatis SQL provider annotations.
28
32
*
@@ -47,6 +51,19 @@ public String insertMultiple(MultiRowInsertStatementProvider<?> insertStatement)
47
51
return insertStatement .getInsertStatement ();
48
52
}
49
53
54
+ public String insertMultipleWithGeneratedKeys (Map <String , Object > parameterMap ) {
55
+ List <String > entries = parameterMap .entrySet ().stream ()
56
+ .filter (e -> e .getKey ().startsWith ("param" )) //$NON-NLS-1$
57
+ .filter (e -> e .getValue () instanceof String )
58
+ .map (e -> (String ) e .getValue ())
59
+ .collect (Collectors .toList ());
60
+ if (entries .size () == 1 ) {
61
+ return entries .get (0 );
62
+ } else {
63
+ throw new RuntimeException ("The parameters for insertMultipleWithGeneratedKeys must contain exactly one parameter of type String" );
64
+ }
65
+ }
66
+
50
67
public String insertSelect (InsertSelectStatementProvider insertStatement ) {
51
68
return insertStatement .getInsertStatement ();
52
69
}
Original file line number Diff line number Diff line change @@ -67,6 +67,16 @@ fun <T> insertMultiple(
67
67
) =
68
68
mapper(SqlBuilder .insertMultiple(records).into(table, completer))
69
69
70
+ fun <T > insertMultipleWithGeneratedKeys (
71
+ mapper : (String , List <T >) -> Int ,
72
+ records : Collection <T >,
73
+ table : SqlTable ,
74
+ completer : MultiRowInsertCompleter <T >
75
+ ): Int =
76
+ with (insertMultiple(records).into(table, completer)) {
77
+ mapper(insertStatement, this .records)
78
+ }
79
+
70
80
fun insertSelect (
71
81
mapper : (InsertSelectStatementProvider ) -> Int ,
72
82
table : SqlTable ,
You can’t perform that action at this time.
0 commit comments