Как установить ссылку на родительский элемент в списке детских элементов при использовании Mapstruct?JAVA

Программисты JAVA общаются здесь
Anonymous
Как установить ссылку на родительский элемент в списке детских элементов при использовании Mapstruct?

Сообщение Anonymous »

У меня есть два класса < /p>

Код: Выделить всё

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

Тем не менее, мне также необходимо иметь возможность создавать объект Book из каждого названия книги, поступающего как строка , а также устанавливать ссылку на объект в каждой книге, в то время как я все еще в процессе создания автора . Что -то подобное < /p>

Код: Выделить всё

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

}

Можно ли сделать с помощью Mapstruct?

Подробнее здесь: https://stackoverflow.com/questions/708 ... when-using

Вернуться в «JAVA»