【发布时间】:2021-10-20 01:32:07
【问题描述】:
我有一张桌子叫User
我正在处理一项任务,我想从 CSV/XLSX 文件中插入多个用户。
我可以保存所有记录
List<User> userList = new ArrayList<>();
for (int i = 0; i < worksheet.getPhysicalNumberOfRows(); i++) {
User user = new User();
XSSFRow row = worksheet.getRow(i);
user.setName(row.getCell(0).getStringCellValue());
userList.add(user);
}
userRepository.saveAll(userList);
但现在的问题是,如果文件包含重复记录,或者如果我尝试再次插入同一个用户,那么它也会保存在表中,我不希望这样。
我想保留没有重名的用户。
我的实体很简单,有类似的字段
private Long userId;
private String name;
让我知道如何避免重复记录插入。
任何帮助将不胜感激。
注意事项:
我知道如何从数组列表中删除重复项。这不是问题。问题是,如果我尝试从新的 CSV/XLSX 文件中添加记录,并且该文件具有表中可用的相同名称,那么我不想在表中插入这些名称。
【问题讨论】:
标签: java spring-boot jpa repository