Ada metode saveCountryIslands yang mengambil argumen array String. Ada Entitas yaitu Negara dan Kepulauan.

Saya telah mencoba menyimpan daftar judul pulau yang disediakan menggunakan jpa .save().

Badan metode yang ada sudah berfungsi (Anda dapat melihat kode di bawah).

Apakah ada cara yang lebih efisien untuk melakukan ini?

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);

}
0
Dulaj Kulathunga 5 Agustus 2019, 19:35

1 menjawab

Jawaban Terbaik

Perubahan kecil yang dapat Anda bawa dalam keterbacaan adalah dengan menggunakan konstruktor sebagai:

    public Islands(String name) {
        this.name = name;
    }

Dan kemudian refactoring kode yang ada sebagai:

    List<Islands> listOfIsland = Stream.of(islandNames)
            .distinct()
            .map(Islands::new)
            .collect(Collectors.toList()); // collect 'toSet' depending on compatibility
1
Naman 5 Agustus 2019, 16:52