[JAVA EE] Lambda, Carregar lista de autores

Boa noite pessoal,

Estou montando o cadastro de livros e estou com um problema na hora de carregar a lista de autores.

No livro ele diz para eu criar o método populateBookAuthor() na classe AdminBooksBean. Meu método está assim:

private void populateBookAuthor() {
	selectedAuthorsIds.stream().map( (id) -> {
		return new Author(id);
	}).forEach(product.add(author);));
}

porém fica vermelho como se tivesse com erro.

Além do método populateBookAuthor() ele pede para eu criar um método add() na classe Book. Fiz assim:

@ManyToMany
@Size(min = 1)
@NotNull
@XmlElement(name="author")
@XmlElementWrapper(name="authors")
private List<Author> authors = new ArrayList<>();

public voi d add(Author author) {
authors.add(author);
}

Como estava apontando erro no método populateBookAuthor() eu retirei o “.forEach(product.add(author); ));” apenas para ver se ia parar de apontar erro, e funcionou, porém os autores cadastrados no banco não aparecem. Quando abro o browser fica assim:

Se alguém puder me ajudar eu agradeço.

Boa tarde.

Eu também estou com um problema semelhante, no meu caso o código com Lambda está assim:

private void populateBookAuthor() {
	selectedAuthorsIds.stream().map( (id) -> {
	return new Author(id);
	}).forEach(product _ add);
}

Mas retorna o erro:
- '_' should not be used as an identifier, since it is a reserved keyword from source level 1.8 on

newandrefelipe

tenta assim:

private void populateBookAuthor() {
		selectedAuthorsIds.stream().map( (id) -> {	return new Author(id); }).forEach(p -> product.add(p));
	}

Pow… esse livro tah muito desconectado até com o repositório do github :disappointed:

Com paciência você consegue…não desiste…

1 Curtida

to conseguindo avançar… :wink:

Esse livro esta osso! tem muita coisa implícita!
EX: " Lembre também de criar o método add na
classe Book , para que possamos adicionar cada um dos autores." pag. 61.
para criar o método vc tem que criar uma lista também e se o cara não olhar no guitHub não sai do lugar!
tá meio pé sem cabeça!

Eu também tive dificuldade nesta parte, deu trabalho para deixar tudo certinho.

Estou até conseguindo evoluir mas com muito custo e pesquisa!

Sobre esse trecho “Lembre também de criar o método add na
classe Book , para que possamos adicionar cada um dos autores.” o codigo apresentado no pdf é o seguinte:

private void populateBookAuthor() {
    selectedAuthorsIds.stream().map((id)	->{
        return new Author(id);
     }).forEach(product _ add);
}

Acredito que ao gera o PDF ou sla oque, aquele underline não foi adicionado propositalmente,
no link a seguir (esse pequeno link) é apresentado a mesma passagem onde no lugar do underline existe ::
(https://pt.stackoverflow.com/questions/116069/qual-é-a-finalidade-do-simbolo-no-java)

https://books.google.com.br/books?id=4GqCCwAAQBAJ&pg=RA1-PA13&lpg=RA1-PA13&dq=private+void+populateBookAuthor()+{+//Essa+linha+imprime+%3D>+[3,+1,+2]%3D%3D%3D%3D%3D+System.out.println(selectedAuthorsIds%2B"%3D%3D%3D%3D%3D");+selectedAuthorsIds.stream().map(+(id)+->+{+return+new+Author(id);+}).forEach(product+_+add);&source=bl&ots=77qZqIPx7c&sig=ACfU3U0B0qFbH5QzUVrqPq7yTinTWe5i0g&hl=pt-BR&sa=X&ved=2ahUKEwiVveWusZflAhX1ILkGHVycCnkQ6AEwAHoECAYQAQ#v=onepage&q&f=false

Sobre o método “add” na classe Book faltou explicação do que o método deve fazer.