Skip to content

Commit fd434f0

Browse files
committed
Support batch insert
1 parent 96f4217 commit fd434f0

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

demo-mybatis/src/main/java/com/example/PizzaRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public Pizza save(Pizza pizza) {
5252
dto.setPrice(pizza.getPrice());
5353
dto.setBaseId(pizza.getBase().getId());
5454
pizzaMapper.insert(dto);
55-
// TODO batch insert
55+
pizzaMapper.flush(); // generate key here in BATCH mode
5656
pizza.getToppings().forEach(t -> pizzaMapper.insertToppings(new PizzaToppings(dto.getId(), t.getId())));
5757
return pizza;
5858
}

demo-mybatis/src/main/java/com/example/mybatis/PizzaMapper.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.example.mybatis;
22

3-
import org.apache.ibatis.annotations.Insert;
4-
import org.apache.ibatis.annotations.Mapper;
5-
import org.apache.ibatis.annotations.Options;
6-
import org.apache.ibatis.annotations.Select;
3+
import org.apache.ibatis.annotations.*;
74

85
import java.util.List;
96

@@ -18,4 +15,7 @@ public interface PizzaMapper {
1815

1916
@Select("SELECT p.id, p.name, p.price, b.id AS baseId, b.name AS baseName, t.id AS toppingId, t.name AS toppingName FROM pizza p INNER JOIN base b ON (b.id = p.base_id) INNER JOIN pizza_toppings pt ON (pt.pizza_id = p.id) INNER JOIN topping t ON (t.id = pt.toppings_id) ORDER BY p.id ASC")
2017
List<Pizza> findOrderByIdAsc();
18+
19+
@Flush
20+
void flush();
2121
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
mybatis.executor-type=batch
12
mybatis.configuration.map-underscore-to-camel-case=true
23
logging.level.com.example.mybatis=DEBUG

0 commit comments

Comments
 (0)