有一个方法saveCountryIslands需要一个String数组参数。有一个实体是国家和岛屿。
我一直在尝试使用以下方法保存提供的岛屿名称列表
jpa .save()
。
现有方法主体已经在工作(您可以在下面的代码中看到)。
有更有效的方法吗?
private void saveCountryIslands(String[] islandNames){
List<Islands> listOfIsland = new ArrayList<>();
Country country=new Country();
Stream.of(islandNames).distinct().forEach(islandNamesFromArray -> {
Islands islands = new Islands();
islands.setIslandName(islandNamesFromArray);
listOfIsland.add(islands);
});
country.setCountryIslands(listOfIsland);
countryRepository.save(country);
}
最佳答案
您可以通过使用以下构造函数来带来可读性的一个小变化:
public Islands(String name) {
this.name = name;
}
然后将现有代码重构为:
List<Islands> listOfIsland = Stream.of(islandNames)
.distinct()
.map(Islands::new)
.collect(Collectors.toList()); // collect 'toSet' depending on compatibility