Ejercicio autor

Establecer la relación 1-n en los pojos

@Entity
public class Autor {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)	
	private int id;

	private String nombre;
	
	@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="autor") //eager = carga ansiosa
	private List<Libro> libros;
@Entity
public class Libro {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;
    
	private String titulo;

	@ManyToOne
	private Autor autor;

Insertar un autor

Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
Autor autor = new Autor();
autor.setNombre("Juan");
		
session.save(autor);
transaction.commit();
session.close();

Insertar un autor y sus libros

Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
Autor autor = new Autor();
List<Libro> libros = new ArrayList<Libro>();
libros.add(new Libro(autor, "titulo1"));
libros.add(new Libro(autor, "titulo2"));
autor.setNombre("Juan");
autor.setLibros(libros);
session.save(autor);
transaction.commit();
session.close();

session.flush()

Este método se asegura de que la información ha sido persistida en la base de datos, de forma que ya sea posible cerrar con seguridad la session.

Este método es ejecutado automáticamente por session.close(), no obstante es recomendable que siempre lo ejecutemos explícitamente justo antes.

Puede ser útil hacer un flush para recuperar la id autoincrementada de un objeto recien insertado. Ejemplo:

session.save(persona);
session.flush();
id = persona.getId();
icono de mandar un mailPreguntame lo que quieras!
Pablo Monteserín
contacta conmigoPablo Monteserín

El servicio de resolución de dudas técnicas es sólo para los usuarios premium. Si tienes cualquier otra duda, usa el formulario de contacto. ¡Gracias!