24 Haziran 2021 Perşembe

MapStruct @Mapper Anotasyonu uses Alanı Seçeneği Yerine DTO

Giriş
@Mapper Anotasyonu uses alanını kullanarak ortak bir Mapper yazmak mümkün. Bu aslında güzel de bir çözüm. Ancak bazen bu yeni Mapper'ın ortak olmasına gerek yok. 

Örnek
Elimizde şöyle bir ilişki olsunn
User -> has -> Book
Book -> has -> Author
Bu ilişkideki her sınıf bir Java Bean. Bu sınıflara karşılık gelen DTO nesneleri tanımlayalım. Tüm hiyerarşiyi topluca çevirmek için şöyle yaparız
@Mapper
public interface MapStructMapper {
  BookSlimDto bookToBookSlimDto(Book book);

  BookDto bookToBookDto(Book book);

  AuthorDto authorToAuthorDto(Author author);

  AuthorAllDto authorToAuthorAllDto(Author author);

  List<AuthorAllDto> authorsToAuthorAllDtos(List<Author> authors);

  UserGetDto userToUserGetDto(User user);

  User userPostDtoToUser(UserPostDto userPostDto);
}
Eğer userToUserGetDto() çağrısı yaparsak, UserDTO nesnesinin, BookDTO ile de doldurulduğunu görebiliriz.

Hiç yorum yok:

Yorum Gönder