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 2323import org .mybatis .dynamic .sql .select .render .SelectStatementProvider ;
2424import org .mybatis .dynamic .sql .update .render .UpdateStatementProvider ;
2525
26+ import java .util .List ;
27+ import java .util .Map ;
28+ import java .util .stream .Collectors ;
29+
2630/**
2731 * Adapter for use with MyBatis SQL provider annotations.
2832 *
@@ -47,6 +51,19 @@ public String insertMultiple(MultiRowInsertStatementProvider<?> insertStatement)
4751 return insertStatement .getInsertStatement ();
4852 }
4953
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+
5067 public String insertSelect (InsertSelectStatementProvider insertStatement ) {
5168 return insertStatement .getInsertStatement ();
5269 }
Original file line number Diff line number Diff line change @@ -67,6 +67,16 @@ fun <T> insertMultiple(
6767) =
6868 mapper(SqlBuilder .insertMultiple(records).into(table, completer))
6969
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+
7080fun insertSelect (
7181 mapper : (InsertSelectStatementProvider ) -> Int ,
7282 table : SqlTable ,
You can’t perform that action at this time.
0 commit comments