Panduan Pemetaan Objek dengan ModelMapper di Java

Feb 18 2023
Pemetaan objek adalah proses transformasi data dari satu objek ke objek lainnya. Di Java, ini bisa menjadi tugas yang membosankan yang membutuhkan banyak kode boilerplate untuk memetakan data antara dua objek dengan struktur yang berbeda.

Pemetaan objek adalah proses transformasi data dari satu objek ke objek lainnya. Di Java, ini bisa menjadi tugas yang membosankan yang membutuhkan banyak kode boilerplate untuk memetakan data antara dua objek dengan struktur yang berbeda. Untungnya, ada perpustakaan yang kuat bernama ModelMapper yang menyederhanakan proses pemetaan objek dan memberikan banyak fleksibilitas dalam menyesuaikan perilaku pemetaan.

Pada artikel ini, kami akan memperkenalkan ModelMapper dan menunjukkan cara menggunakannya untuk memetakan antara dua objek di Java.

Memulai dengan ModelMapper

Untuk mulai menggunakan ModelMapper di proyek Java Anda, Anda perlu menambahkan pustaka ModelMapper ke proyek Anda. Jika Anda menggunakan Maven, tambahkan dependensi berikut ke pom.xmlfile proyek Anda:

<dependency>
  <groupId>org.modelmapper</groupId>
  <artifactId>modelmapper</artifactId>
  <version>2.4.2</version>
</dependency>

implementation 'org.modelmapper:modelmapper:2.4.2'

Memetakan Objek dengan ModelMapper

Katakanlah Anda memiliki dua objek dengan struktur berbeda, dan Anda ingin memetakan data di antara keduanya. Berikut contohnya:

public class User {
    private String name;
    private int age;

    // constructor, getters, and setters
}

public class UserDTO {
    private String fullName;
    private int userAge;

    // constructor, getters, and setters
}

public class Main {
    public static void main(String[] args) {
        User user = new User("John", 30);
        ModelMapper modelMapper = new ModelMapper();
        UserDTO userDTO = modelMapper.map(user, UserDTO.class);
        System.out.println(userDTO.getFullName()); // Output: John
        System.out.println(userDTO.getUserAge()); // Output: 30
    }
}

Saat kita menjalankan mainmetode tersebut, hasilnya akan menjadi Johndan 30, yang menunjukkan bahwa pemetaan berhasil.

Menyesuaikan Pemetaan Objek

ModelMapper memberikan banyak fleksibilitas dalam menyesuaikan pemetaan objek. Anda dapat menentukan pemetaan bidang khusus, membuat pengonversi jenis, dan mengonfigurasi berbagai strategi pemetaan.

Pemetaan Bidang Kustom

Terkadang, Anda mungkin perlu memetakan bidang dengan nama berbeda di antara dua objek. Anda dapat mencapainya dengan menentukan pemetaan bidang khusus. Berikut contohnya:

modelMapper.typeMap(User.class, UserDTO.class)
  .addMappings(mapper -> {
      mapper.map(src -> src.getName(), UserDTO::setFullName);
      mapper.map(src -> src.getAge(), UserDTO::setUserAge);
  });

Jenis Pengonversi

ModelMapper menyediakan sejumlah konverter tipe bawaan yang dapat secara otomatis mengonversi data di antara berbagai tipe. Namun, terkadang Anda mungkin perlu membuat pengonversi tipe Anda sendiri untuk tipe data kustom. Berikut contohnya:

public class DateToStringConverter extends AbstractConverter<Date, String> {
    @Override
    protected String convert(Date source) {
        return source.toString();
    }
}

Kita dapat mendaftarkan konverter tipe khusus dengan ModelMapperinstance dengan memanggil addConverter()metode:

modelMapper.addConverter(new DateToStringConverter());

Strategi Pemetaan

ModelMapper menyediakan beberapa strategi pemetaan yang dapat digunakan untuk menyesuaikan perilaku pemetaan. Beberapa strategi yang tersedia antara lain Strict, Loose, dan Standard.

Misalnya, Loosestrategi memungkinkan pemetaan antar bidang dengan nama dan jenis yang berbeda, sedangkan Strictstrategi menerapkan aturan pemetaan yang ketat dan memunculkan pengecualian saat pemetaan tidak dapat dilakukan.

Anda dapat mengatur strategi pemetaan dengan memanggil setMatchingStrategy()metode pada ModelMapperinstance:

modelMapper.getConfiguration()
  .setMatchingStrategy(MatchingStrategies.LOOSE);

Kesimpulan

Pada artikel ini, kami telah menunjukkan kepada Anda bagaimana menggunakan ModelMapper untuk memetakan antara dua objek di Java. ModelMapper adalah perpustakaan yang kuat yang menyederhanakan proses pemetaan objek dan memberikan banyak fleksibilitas dalam menyesuaikan perilaku pemetaan.

Dengan menggunakan ModelMapper, Anda dapat menghindari penulisan banyak kode boilerplate untuk pemetaan objek, dan fokus pada fungsionalitas inti aplikasi Anda.

Terima kasih telah membaca. Selamat belajar

Dukung publikasi kami dengan mengikutinya

Lihat juga artikel berikut ini

Pertanyaan Wawancara Berbasis Java8 Stream yang Paling Sering Ditanyakan — Bagian 1 Coding: Meratakan array dalam Javascript Cara termudah untuk Mengakses Database di JAVA Keindahan Kekacauan: Bagaimana Pikiran Acak Dapat Menginspirasi Kreativitas Menangkap Beberapa Pengecualian Di Java Apache Maven — Secara Singkat