ayuda no me relaciona la tabla autores con la tabla libros ni siquier en l base de datos me crea un columna autores mando pantallazo, si me agrega canda entindad libro que mando a la base de datos pero no me guarda ni me crea la columna autoresmando pantallazos
@Entity @Table(name = "libros") public class LibroAMostrar {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;
@Column(unique = true)
private String titulo;
@OneToMany(mappedBy = "libroAMostrar", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<AutoresAMostrar> autores;
private List<String> lenguajes;
private Integer descargas;
public LibroAMostrar(){}
public LibroAMostrar(DatosLibro datosLibro){
this.titulo=datosLibro.title();
this.autores=datosLibro.autores().stream().map(AutoresAMostrar::new).collect(Collectors.toList());
this.lenguajes=datosLibro.lenguajes();
this.descargas=datosLibro.descargas();
}
public Long getId() {
return Id;
}
public void setId(Long id) {
Id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public List<AutoresAMostrar> getAutores() {
return autores;
}
public void setAutores(List<AutoresAMostrar> autores) {
autores.forEach(e->e.setLibroAMostrar(this));
this.autores = autores;
}
public List<String> getLenguajes() {
return lenguajes;
}
public void setLenguajes(List<String> lenguajes) {
this.lenguajes = lenguajes;
}
public Integer getDescargas() {
return descargas;
}
public void setDescargas(Integer descargas) {
this.descargas = descargas;
}
@Override
public String toString() {
return "*********************************************" + '\n' +
"titulo = " + titulo + '\n' +
"Autores = " + autores + '\n' +
"lenguajes =" + lenguajes +'\n'+
"descargas =" + descargas+'\n'+
"*********************************************";
}
}
y la otra entindad es
@Entity @Table(name = "autores") public class AutoresAMostrar {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;
private String nombre;
@Column(name = "fecha_nacimiento",nullable = true)
private int fechaNacimiento;
@Column(name = "fecha_muerte",nullable = true)
private int fechaMuerte;
@ManyToOne
@JoinColumn(name = "libros")
private LibroAMostrar libroAMostrar;
public AutoresAMostrar(){}
public AutoresAMostrar(DatosAutores datosAutores){
this.nombre= datosAutores.nombre();
this.fechaNacimiento=datosAutores.fechaNacimiento();
this.fechaMuerte=datosAutores.fechaMuerte();
}
public Long getId() {
return Id;
}
public void setId(Long id) {
Id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getFechaNacimiento() {
return fechaNacimiento;
}
public void setFechaNacimiento(int fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}
public int getFechaMuerte() {
return fechaMuerte;
}
public void setFechaMuerte(int fechaMuerte) {
this.fechaMuerte = fechaMuerte;
}
public LibroAMostrar getLibroAMostrar() {
return libroAMostrar;
}
public void setLibroAMostrar(LibroAMostrar libroAMostrar) {
this.libroAMostrar = libroAMostrar;
}
@Override
public String toString() {
return nombre;
}
} pero en la base de datos aparece asi