正确合并集合并不是一件容易的事!推荐Vlad的例子文章的Spring Boot示例,只有手工进行集合合并。
关键点:
- 删除传入集合中不再存在的现有数据库行。
- 更新现有的可以在传入集合中找到的数据库行。
- 添加在传入集合中找到的行,这些行在当前数据库快照中是找不到的。
假设tournament和tennis_player两个表中有数据:
INSERT INTO tournament (id, name) VALUES (1, 'Roland Garros'); |
Tournament实体:和TennisPlayer 是双向一对多关系
@Entity |
TennisPlayer 实体:
@Entity |
仓储:
@Repository |
在服务中进行两个实体集合的合并:
@Service |
List<TennisPlayer> newPlayers = players.stream() |
手工合并集合的调用:
System.out.println("------------------- Players from US Open --------------------"); |
源代码可以在这里找到 。