MapStruct একটি Java annotation processor যা সহজ এবং দ্রুত মডেল ম্যাপিং করতে ব্যবহৃত হয়। এটি compile-time এ কোড জেনারেট করে এবং runtime পারফরম্যান্সে কোনো প্রভাব ফেলে না। MapStruct এর মাধ্যমে আপনি Collections (যেমন, List
, Set
) এবং Arrays এর মধ্যে ম্যাপিং খুব সহজে করতে পারেন।
এই টিউটোরিয়ালে, আমরা Collections এবং Arrays এর মধ্যে ম্যাপিং করার ধারণা এবং উদাহরণ দেখব।
ম্যাপস্ট্রাক্টে, আপনি এক ধরনের Collection (যেমন List
, Set
) অথবা Array থেকে অন্য ধরনের Collection বা Array তে ডেটা ম্যাপ করতে পারেন। এই প্রক্রিয়াটি MapStruct সঠিকভাবে পরিচালনা করে এবং প্রতিটি উপাদান (element) এর মধ্যে ম্যাপিং তৈরি করে।
MapStruct List বা অন্যান্য Collection এর মধ্যে ম্যাপিং করার জন্য স্বয়ংক্রিয়ভাবে প্রতিটি উপাদান ম্যাপ করে। যখন আপনি List
এর ম্যাপিং করেন, তখন আপনি প্রতিটি List
উপাদানকে কাস্টম ম্যাপিং ফাংশন ব্যবহার করে ম্যাপ করতে পারেন।
ধরা যাক, আমাদের একটি Person এবং PersonDTO ক্লাস রয়েছে এবং তাদের মধ্যে List এর মধ্যে ম্যাপিং করতে চাই।
Person.java (Domain Object):
public class Person {
private String name;
private int age;
// Getters and Setters
}
PersonDTO.java (DTO):
public class PersonDTO {
private String name;
private int age;
// Getters and Setters
}
PersonMapper.java (Mapper Interface):
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
// Mapping List of Person to List of PersonDTO
List<PersonDTO> personListToPersonDTOList(List<Person> personList);
}
এখানে, List থেকে List তে ম্যাপিং করা হচ্ছে। MapStruct প্রতিটি Person
অবজেক্টকে PersonDTO তে ম্যাপ করবে।
Set এর মধ্যে ম্যাপিং করতে হলে, MapStruct সেই ধরনের ম্যাপিংকে খুব সহজভাবে পরিচালনা করে, কারণ এটি প্রতিটি উপাদান আলাদাভাবে ম্যাপ করে।
import java.util.Set;
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
// Mapping Set of Person to Set of PersonDTO
Set<PersonDTO> personSetToPersonDTOSet(Set<Person> personSet);
}
এখানে, Set<Person>
থেকে Set<PersonDTO>
তে ম্যাপিং করা হচ্ছে। MapStruct এর মাধ্যমে সেটের প্রতিটি উপাদান ম্যাপ হবে।
MapStruct ব্যবহার করে Array এর মধ্যে ম্যাপিং করতে হলে, আপনি খুব সহজে এটি করতে পারবেন। এটি একটি সাধারণ ম্যাপিং এবং প্রায় একইভাবে কাজ করে, যেমন আপনি List
বা Set
এর সাথে ম্যাপিং করেন।
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
// Mapping Array of Person to Array of PersonDTO
PersonDTO[] personArrayToPersonDTOArray(Person[] personArray);
}
এখানে, Person[] থেকে PersonDTO[] তে ম্যাপিং করা হচ্ছে।
আপনি যদি nested collections (যেমন, একটি List
যার মধ্যে List
রয়েছে) অথবা nested arrays (যেমন, একটি Person[]
যার মধ্যে PersonDTO[]
রয়েছে) ম্যাপ করতে চান, তাহলে MapStruct এটিও সমর্থন করে। আপনাকে শুধু MapStruct Mapper এর মধ্যে nested types এর জন্য ম্যাপিং কনফিগারেশন করতে হবে।
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
// Nested List Mapping: Mapping List<List<Person>> to List<List<PersonDTO>>
List<List<PersonDTO>> personListListToPersonDTOListList(List<List<Person>> personListList);
}
এখানে, একটি List<List> কে List<List> তে ম্যাপ করা হচ্ছে।
এটি বেশ সাধারণ যে, কিছু ক্ষেত্রে আপনি Collections এবং Arrays এর মধ্যে কাস্টম কনভার্সন প্রয়োগ করতে চাইবেন। MapStruct আপনাকে এই কাস্টম কনভার্সন ফাংশন ব্যবহারের সুযোগ দেয়।
ধরা যাক, আপনি একটি List কে List তে কাস্টম ম্যাপিং করতে চান, যেখানে String এর মানগুলো Integer এ কনভার্ট হবে।
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
// Custom List Mapping: Mapping List<String> to List<Integer> using custom logic
List<Integer> stringListToIntegerList(List<String> stringList);
default Integer stringToInteger(String value) {
return Integer.parseInt(value);
}
}
এখানে, stringListToIntegerList মেথডে কাস্টম কনভার্সন যুক্ত করা হয়েছে, যা String
থেকে Integer
এ রূপান্তর করবে।
MapStruct এর মাধ্যমে Collections (যেমন List
, Set
) এবং Arrays এর মধ্যে ম্যাপিং করা খুবই সহজ। এটি nested collections এবং arrays এর মধ্যেও ম্যাপিং করতে সহায়তা করে, এবং custom mapping এর সুযোগ প্রদান করে। MapStruct এর মাধ্যমে আপনি পারফরম্যান্স উন্নত করতে পারেন কারণ এটি compile-time এ কোড জেনারেট করে, যা রানটাইমে অতিরিক্ত লোড তৈরি করে না।
MapStruct এর ব্যবহার সহজ এবং কোড মেইনটেন্যান্স এবং উন্নয়নের জন্য কার্যকরী, বিশেষ করে যখন বড় এবং জটিল ডেটা ম্যাপিং এর কাজ করতে হয়।
MapStruct হল একটি annotation processor ভিত্তিক টুল যা JavaBeans (POJOs) বা ডোমেইন অবজেক্টগুলির মধ্যে ম্যাপিং সম্পন্ন করার জন্য ব্যবহৃত হয়। এর মাধ্যমে, আপনি সহজে এবং দ্রুত Collection (List, Set) এবং Array Mapping করতে পারেন। MapStruct ডেটার এক ধরনের সংগ্রহ বা আয়োজন থেকে অন্য ধরনের সংগ্রহে ম্যাপিং করার জন্য খুবই কার্যকরী এবং নির্ভরযোগ্য।
এই টিউটোরিয়ালে, আমরা দেখব কীভাবে MapStruct ব্যবহার করে Collection এবং Array ম্যাপিং করা যায়।
MapStruct Collection (List, Set) ম্যাপিং এর জন্য অটোমেটিক সমাধান প্রদান করে। যখন আপনি একটি List বা Set অবজেক্টের মধ্যে ম্যাপিং করতে চান, তখন MapStruct প্রতিটি উপাদানকে এক ক্লাস থেকে অন্য ক্লাসে ম্যাপ করবে। এতে আপনাকে প্রতিটি উপাদানকে ম্যাপ করার জন্য আলাদাভাবে কোড লেখার প্রয়োজন হয় না। MapStruct এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে।
ধরা যাক, আমাদের একটি Employee ক্লাস এবং EmployeeDTO ক্লাস রয়েছে, এবং আমরা List থেকে List এ ডেটা ম্যাপ করতে চাই।
Employee.java:
public class Employee {
private String name;
private String department;
// Getters and Setters
}
EmployeeDTO.java:
public class EmployeeDTO {
private String name;
private String department;
// Getters and Setters
}
EmployeeMapper.java (Mapper Interface):
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
List<EmployeeDTO> employeesToEmployeeDTOs(List<Employee> employees);
}
এখানে, employeesToEmployeeDTOs মেথডটি List থেকে List এ ডেটা ম্যাপ করবে।
এছাড়াও Set এর মধ্যে ম্যাপিং করার জন্য MapStruct একইভাবে কাজ করে। যদি আপনি Set থেকে Set ম্যাপ করতে চান, তাহলে এর জন্য কোনো আলাদা কোড লেখা দরকার নেই। একই ম্যাপার ইন্টারফেস ব্যবহার করা যাবে।
EmployeeMapper.java (Set Mapping):
import java.util.Set;
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
Set<EmployeeDTO> employeesToEmployeeDTOs(Set<Employee> employees);
}
এখানে, employeesToEmployeeDTOs মেথডটি Set থেকে Set এ ডেটা ম্যাপ করবে।
MapStruct ব্যবহার করে আপনি Array ম্যাপিংও করতে পারেন। এটি List বা Set এর মতই কাজ করে, যেখানে প্রতিটি উপাদানকে এক টাইপ থেকে অন্য টাইপে ম্যাপ করা হয়।
ধরা যাক, আমাদের Employee এবং EmployeeDTO ক্লাসের একটি অ্যারে রয়েছে এবং আমরা এই অ্যারের মধ্যে ম্যাপিং করতে চাই।
Employee.java:
public class Employee {
private String name;
private String department;
// Getters and Setters
}
EmployeeDTO.java:
public class EmployeeDTO {
private String name;
private String department;
// Getters and Setters
}
EmployeeMapper.java (Array Mapping):
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
EmployeeDTO[] employeesToEmployeeDTOs(Employee[] employees);
}
এখানে, employeesToEmployeeDTOs মেথডটি Employee[] থেকে EmployeeDTO[] এ ডেটা ম্যাপ করবে।
যদিও List, Set, এবং Array সবগুলোই ম্যাপিংয়ের জন্য ব্যবহার করা যেতে পারে, তবে Arrays সাধারণত কমপ্লেক্স ডেটা স্ট্রাকচারের তুলনায় অনেক দ্রুত এবং কম মেমরি ব্যবহার করে।
MapStruct আপনি Nested Collection ম্যাপিংও সহজেই করতে পারবেন। ধরুন আপনার একটি Employee ক্লাস রয়েছে, যেখানে Address (অন্য ক্লাস) রয়েছে, এবং আপনি List এর মধ্যে List ম্যাপ করতে চান, এটি MapStruct দ্বারা খুব সহজেই সম্পন্ন করা যায়।
Employee.java:
public class Employee {
private String name;
private Address address;
// Getters and Setters
}
Address.java:
public class Address {
private String street;
private String city;
// Getters and Setters
}
EmployeeDTO.java:
public class EmployeeDTO {
private String name;
private AddressDTO address;
// Getters and Setters
}
AddressDTO.java:
public class AddressDTO {
private String street;
private String city;
// Getters and Setters
}
EmployeeMapper.java (Nested Collection Mapping):
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
List<EmployeeDTO> employeesToEmployeeDTOs(List<Employee> employees);
AddressDTO addressToAddressDTO(Address address);
}
এখানে, EmployeeMapper ইন্টারফেসে List থেকে List ম্যাপ করার সময় Address অবজেক্টও স্বয়ংক্রিয়ভাবে AddressDTO তে ম্যাপ হবে।
MapStruct compile-time কোড জেনারেট করে, তাই এটি Collection বা Array ম্যাপিংয়ের জন্য দ্রুত এবং পারফরম্যান্সে কোনো সমস্যা সৃষ্টি করে না। এটি List, Set, এবং Array ম্যাপিংয়ের জন্য no reflection ব্যবহার করে, ফলে এটি দ্রুততর এবং অধিক কার্যকরী।
MapStruct আপনাকে Collection (List, Set) এবং Array ম্যাপিং এর জন্য খুবই সহজ এবং কার্যকরী সমাধান প্রদান করে। এটি List থেকে List বা Employee[] থেকে EmployeeDTO[] এর মতো ম্যাপিং করতে পারে। Nested Object Mapping এবং Custom Collection Mapping এর জন্য MapStruct অত্যন্ত কার্যকরী এবং টাইপ সেফ মডেল ম্যাপিং প্রক্রিয়া নিশ্চিত করে। MapStruct আপনাকে ডেটা ট্রান্সফার অবজেক্টের মধ্যে ডেটা স্থানান্তর করতে সাহায্য করে, এবং কোড জেনারেট করার মাধ্যমে পারফরম্যান্সে কোনো ক্ষতি ছাড়াই ম্যাপিং প্রক্রিয়াকে দ্রুততর এবং কার্যকরী করে তোলে।
MapStruct একটি Java annotation processor ভিত্তিক টুল যা ডোমেইন অবজেক্টের মধ্যে ম্যাপিং করার জন্য ব্যবহৃত হয়। এর প্রধান সুবিধা হল এটি compile-time কোড জেনারেশন করে, ফলে পারফরম্যান্সে কোনো প্রভাব পড়ে না। এক্ষেত্রে, MapStruct কে কাস্টম মডেল ম্যাপিং, কাস্টম টাইপ কনভার্সন, এবং Collection (List, Set) এবং Array ম্যাপিং এর জন্য ব্যবহার করা যেতে পারে। এই টিউটোরিয়ালে, আমরা দেখব কিভাবে MapStruct ব্যবহার করে Collection (List, Set) এবং Array ম্যাপিং করা যায়।
MapStruct এর মাধ্যমে আপনি সাধারণ Java Collections যেমন List, Set, এবং Array ম্যাপ করতে পারবেন। আপনি যখন এক ধরনের অবজেক্টের Collection বা Array থেকে অন্য ধরনের Collection বা Array এ ডেটা ম্যাপ করবেন, তখন MapStruct প্রতিটি এলিমেন্টের জন্য ম্যাপিং কনভার্সন সঠিকভাবে পরিচালনা করবে।
MapStruct সাধারণত List, Set, Array ইত্যাদির উপাদানগুলির মধ্যে ম্যাপিং করতে পারে এবং এই উপাদানগুলির জন্য মাপিং ফাংশন তৈরি করতে পারে।
Collection যেমন List বা Set এর মধ্যে ম্যাপিং করতে, MapStruct আপনাকে সহজেই একটি ফাংশন তৈরি করতে সাহায্য করে, যা এক ধরনের Collection কে অন্য ধরনের Collection তে কনভার্ট করবে।
ধরা যাক, আপনার একটি Employee ক্লাস এবং একটি EmployeeDTO ক্লাস রয়েছে এবং আপনি এই দুটি ক্লাসের List কে ম্যাপ করতে চান।
public class Employee {
private String name;
private int age;
// Getters and Setters
}
public class EmployeeDTO {
private String name;
private int age;
// Getters and Setters
}
import org.mapstruct.Mapper;
import java.util.List;
@Mapper
public interface EmployeeMapper {
// Mapping a List of Employee to List of EmployeeDTO
List<EmployeeDTO> employeesToEmployeeDTOs(List<Employee> employees);
}
এখানে, employeesToEmployeeDTOs মেথডটি Employee এর একটি List কে EmployeeDTO এর একটি List তে ম্যাপ করছে।
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
Employee employee1 = new Employee();
employee1.setName("John");
employee1.setAge(30);
Employee employee2 = new Employee();
employee2.setName("Jane");
employee2.setAge(25);
List<Employee> employees = Arrays.asList(employee1, employee2);
// Mapping using MapStruct
EmployeeMapper employeeMapper = Mappers.getMapper(EmployeeMapper.class);
List<EmployeeDTO> employeeDTOs = employeeMapper.employeesToEmployeeDTOs(employees);
for (EmployeeDTO dto : employeeDTOs) {
System.out.println("Name: " + dto.getName() + ", Age: " + dto.getAge());
}
}
}
এখানে, MapStruct ব্যবহার করে List কে List তে ম্যাপ করা হচ্ছে।
Set এর ক্ষেত্রেও ম্যাপিং একইভাবে করা যায়, তবে Set সাধারণত অর্ডারহীন (unordered) হয়ে থাকে, তাই এতে কোনো বিশেষ অর্ডার অনুসরণ করা হয় না।
import org.mapstruct.Mapper;
import java.util.Set;
@Mapper
public interface EmployeeMapper {
// Mapping a Set of Employee to Set of EmployeeDTO
Set<EmployeeDTO> employeesToEmployeeDTOs(Set<Employee> employees);
}
এখানে, employeesToEmployeeDTOs মেথডটি Employee এর একটি Set কে EmployeeDTO এর একটি Set তে ম্যাপ করছে।
আপনি যখন Array ম্যাপ করবেন, তখন MapStruct নিজেই উপাদানগুলির মধ্যে ম্যাপিং পরিচালনা করবে।
import org.mapstruct.Mapper;
@Mapper
public interface EmployeeMapper {
// Mapping an array of Employee to array of EmployeeDTO
EmployeeDTO[] employeesToEmployeeDTOs(Employee[] employees);
}
এখানে, employeesToEmployeeDTOs মেথডটি Employee এর একটি Array কে EmployeeDTO এর একটি Array তে ম্যাপ করছে।
যখন আপনার Collection বা Array তে Nested Objects (যেমন List of Lists বা Set of Sets) থাকে, তখন MapStruct এই Nested Objects এর মধ্যে ম্যাপিং করতে সহায়তা করে।
import org.mapstruct.Mapper;
import java.util.List;
@Mapper
public interface EmployeeMapper {
// Mapping a List of Employees to a List of EmployeeDTOs
List<EmployeeDTO> employeesToEmployeeDTOs(List<Employee> employees);
// Mapping a List of Lists (Nested Collection) of Employees to a List of Lists of EmployeeDTOs
List<List<EmployeeDTO>> employeesToEmployeeDTOsNested(List<List<Employee>> employees);
}
এখানে, প্রথম মেথডটি List কে List তে ম্যাপ করছে এবং দ্বিতীয় মেথডটি List<List> কে List<List> তে ম্যাপ করছে।
MapStruct আপনাকে আরও উন্নত ম্যাপিং কনফিগারেশন করতে সহায়তা করে। এর মধ্যে রয়েছে:
@Mapper
public interface EmployeeMapper {
@Mapping(target = "name", source = "fullName", defaultValue = "Unknown")
EmployeeDTO employeeToEmployeeDTO(Employee employee);
}
এখানে, যদি Employee অবজেক্টের fullName ফিল্ডটি null থাকে, তবে defaultValue = "Unknown" দ্বারা একটি ডিফল্ট মান সেট করা হবে।
MapStruct ব্যবহার করে আপনি Collection (List, Set) এবং Array এর মধ্যে ডেটা ম্যাপিং করতে পারেন। এটি সহজে List থেকে List এবং Set থেকে Set তে ম্যাপিং করতে সহায়তা করে। এছাড়াও, MapStruct আপনাকে Nested Collection ম্যাপিং এবং Null-safe Mapping এর মতো অতিরিক্ত বৈশিষ্ট্য প্রদান করে, যা ম্যাপিং প্রক্রিয়াকে আরও উন্নত এবং কার্যকরী করে তোলে।
MapStruct একটি শক্তিশালী Java annotation processor যা ডেটা ট্রান্সফার অবজেক্ট (DTO) এবং ডোমেইন অবজেক্টগুলির মধ্যে ম্যাপিং সহজ করে। Collections এবং Arrays এর ম্যাপিং MapStruct এর গুরুত্বপূর্ণ ফিচারগুলোর মধ্যে একটি। এটি কিভাবে List, Set, এবং Array এর মধ্যে ম্যাপিং কার্যকরীভাবে করতে হয়, সেই সম্পর্কে আলোচনা করা হবে।
MapStruct এর মাধ্যমে Collections (List, Set) এবং Arrays এর মধ্যে ম্যাপিং করতে হলে, এটি অটোমেটিকভাবে Collection Type অথবা Array Type এর মান ম্যাপ করে, যেহেতু MapStruct Iterable বা Array এর ডেটাকে হ্যান্ডেল করতে সক্ষম।
MapStruct স্বয়ংক্রিয়ভাবে Collections এবং Arrays এর প্রতি ইনডিভিজুয়াল ম্যাপিং মেথড চালায়, যাতে প্রত্যেক উপাদান সঠিকভাবে ম্যাপ হয়।
ধরা যাক, আমাদের কাছে একটি Employee ক্লাস এবং একটি EmployeeDTO ক্লাস রয়েছে, এবং আমাদের একটি List এ ম্যাপিং করতে হবে।
public class Employee {
private String name;
private int age;
// Getters and Setters
}
public class EmployeeDTO {
private String name;
private int age;
// Getters and Setters
}
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
// Mapping a single Employee to EmployeeDTO
EmployeeDTO employeeToEmployeeDTO(Employee employee);
// Mapping List of Employee to List of EmployeeDTO
List<EmployeeDTO> employeesToEmployeeDTOs(List<Employee> employees);
}
এখানে, employeesToEmployeeDTOs
মেথডটি List থেকে List এ ম্যাপিং করবে।
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
// Create a list of Employee objects
List<Employee> employees = Arrays.asList(
new Employee("John", 30),
new Employee("Jane", 25)
);
// Map to List of EmployeeDTO
List<EmployeeDTO> employeeDTOs = EmployeeMapper.INSTANCE.employeesToEmployeeDTOs(employees);
// Print the EmployeeDTO list
employeeDTOs.forEach(dto -> System.out.println("Name: " + dto.getName() + ", Age: " + dto.getAge()));
}
}
Output:
Name: John, Age: 30
Name: Jane, Age: 25
এখানে, List থেকে List এ ম্যাপিং সম্পন্ন হয়েছে।
এখন, ধরুন আমাদের একটি Set এর মধ্যে Employee অবজেক্ট এবং আমরা সেটি Set এ ম্যাপ করতে চাই। MapStruct একইভাবে Set এর মধ্যে অবজেক্টগুলির ম্যাপিং করতে পারে।
import java.util.Set;
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
// Mapping Set of Employee to Set of EmployeeDTO
Set<EmployeeDTO> employeesToEmployeeDTOs(Set<Employee> employees);
}
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// Create a set of Employee objects
Set<Employee> employees = new HashSet<>();
employees.add(new Employee("John", 30));
employees.add(new Employee("Jane", 25));
// Map to Set of EmployeeDTO
Set<EmployeeDTO> employeeDTOs = EmployeeMapper.INSTANCE.employeesToEmployeeDTOs(employees);
// Print the EmployeeDTO set
employeeDTOs.forEach(dto -> System.out.println("Name: " + dto.getName() + ", Age: " + dto.getAge()));
}
}
Output:
Name: John, Age: 30
Name: Jane, Age: 25
এখানে, Set থেকে Set এ ম্যাপিং হয়েছে।
MapStruct Arrays এর মধ্যে থাকা অবজেক্টেরও ম্যাপিং করতে সক্ষম। ধরুন, আমাদের একটি Employee[] (Array) রয়েছে এবং সেটি EmployeeDTO[] এ ম্যাপ করতে চাই।
@Mapper
public interface EmployeeMapper {
EmployeeMapper INSTANCE = Mappers.getMapper(EmployeeMapper.class);
// Mapping Employee array to EmployeeDTO array
EmployeeDTO[] employeesToEmployeeDTOs(Employee[] employees);
}
public class Main {
public static void main(String[] args) {
// Create an array of Employee objects
Employee[] employees = {
new Employee("John", 30),
new Employee("Jane", 25)
};
// Map to EmployeeDTO array
EmployeeDTO[] employeeDTOs = EmployeeMapper.INSTANCE.employeesToEmployeeDTOs(employees);
// Print the EmployeeDTO array
for (EmployeeDTO dto : employeeDTOs) {
System.out.println("Name: " + dto.getName() + ", Age: " + dto.getAge());
}
}
}
Output:
Name: John, Age: 30
Name: Jane, Age: 25
এখানে, Employee[] থেকে EmployeeDTO[] এ ম্যাপিং করা হয়েছে।
MapStruct এর মাধ্যমে Collections (List, Set) এবং Arrays এর মধ্যে ম্যাপিং অত্যন্ত সহজ এবং কার্যকরী। এটি compile-time এ কোড জেনারেট করে এবং প্রতিটি উপাদানকে সঠিকভাবে ম্যাপ করে। এছাড়া, MapStruct ব্যবহার করে collections এবং arrays এর মধ্যে List, Set, এবং Array টাইপের ডেটা ম্যাপিং করা যায়। এর মাধ্যমে, আপনি খুব দ্রুত এবং পারফরম্যান্সে কোনো সমস্যা ছাড়াই ডেটা ট্রান্সফার করতে পারবেন।
Read more