Код: Выделить всё
@Entity
class Author {
@Id
private Long id;
private String authorName;
@OneToMany(mappedBy = "author")
private List authorBooks;
}
@Entity
class Book {
@Id
private Long id;
private String bookTitle;
@ManyToOne
@JoinColumn(name = "id")
private Author bookAuthor;
}
< /code>
И мне нужно отобразить входящие запросы к следующему классу DTO: < /p>
class AuthorRequest {
private String authorRequestName;
private List authorRequestBooks;
}
< /code>
Я реализовал простой интерфейс DTO с Mapstruct < /p>
@Mapper
public interface AuthorMapper {
@Mapping(target = "authorName", source = "request.authorRequestName")
Author map(AuthorRequest request);
Код: Выделить всё
public class AuthorMapperImpl implements AuthorMapper {
@Override
public Author map(AuthorRequest request) {
Author author = new Author();
author.setAuthorName(request.getAuthorRequestName());
author.mapBooks(request.getAuthorRequestBooks(), author);
return author;
}
private List mapBooks(List authorRequestBooks, Author author) {
List books = new ArrayList();
for (String title : authorRequestBooks) {
Book book = new Book();
book.setBookAuthor(author);
book.setBookTitle(title);
books.add(book);
}
}
return books;
}
}
Подробнее здесь: https://stackoverflow.com/questions/708 ... when-using