Gostaria de saber se alguém pode me dar uma ajuda, pois eu mesmo fiz a implementação do JPA no projeto(obs. não utilizei o código fonte disponibilizado)
O meu programa está persistindo corretamente no banco de dados a classe Livro e a classe Autor, mas não está dando insert na tabela Livro_autor do relacionamento muito para muitos bidirecional.
Classe Livro
package br.com.alura.modelo;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class Livro {
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private int id;
private String titulo;
private String isbn;
private double preco;
private String data;
@ManyToMany
private List<Autor> autores = new ArrayList<Autor>();
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Livro other = (Livro) obj;
if (id != other.id)
return false;
return true;
}
/**
* Adiciona o autor informado no formulário no arraylist de autores do livro. Um livro pode ter vários autores.
* @param autor
*/
public void adicionaAutor(Autor autor){
getAutores().add(autor);
System.out.println(autor.getNome() +" adicionado no livro");
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public List<Autor> getAutores() {
return autores;
}
}
Classe Autor
package br.com.alura.modelo;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class Autor {
@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private int id;
private String nome;
@ManyToMany (mappedBy = "autores")
private List<Livro>livros= new ArrayList<Livro>();
public List<Livro> getLivros() {
return livros;
}
public void setLivros(List<Livro> livros) {
this.livros = livros;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}