Pessoal, estou desenvolvendo uma pequena aplicação web em que cadastro artistas e suas músicas. Há um método que recebe o id do artista e o nome da música e salva no banco, e outro que recebe o id e uma lista de músicas para salvar. Eis o método:
public static void addMusicstoArtist(Long id, List<String> musicas) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Artista artista = (Artista) session.load(Artista.class, id);
for (int i = 0; i < musicas.size(); i++) {
artista.getMusicas().add(musicas.get(i));
}
session.getTransaction().commit();
}
O método que recebe apenas uma música salva normalmente, agora esse com a lista gera o seguinte:
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
musicas.PreecheArtistas.addMusicstoArtist(PreecheArtistas.java:52)
musicas.PreecheArtistas.exec(PreecheArtistas.java:103)
org.apache.jsp.index_jsp._jspService(index_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
Agradecria se alguém puder me ajudar