Vamo la,
Responsavel.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="demo">
<class name="br.rn.cefet.nudes.modelo.vo.Responsavel" table="responsavel" node="responsavel">
<id name="id" type="int" column="id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">idresponsavel</param>
</generator>
</id>
<property name="nome" not-null="true" type="java.lang.String"/>
<property name="cpf" not-null="true" type="java.lang.String"/>
<property name="email" type="java.lang.String"/>
<property name="senha" type="java.lang.String"/>
<property name="fone" type="java.lang.String"/>
<set name="projetos">
<key column="idresponsavel" />
<one-to-many class="br.rn.cefet.nudes.modelo.vo.Projeto" />
</set>
</class>
</hibernate-mapping>
Projeto.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="demo">
<class name="br.rn.cefet.nudes.modelo.vo.Projeto" table="projeto" node="projeto">
<id name="id" type="int" column="id" unsaved-value="0">
<generator class="sequence">
<param name="sequence">idprojeto</param>
</generator>
</id>
<property name="titulo" not-null="true" type="java.lang.String"/>
<property name="objetivoGeral" not-null="true" type="java.lang.String"/>
<property name="objetivosEspecificos" not-null="true" type="java.lang.String"/>
<property name="justificativa" not-null="true" type="java.lang.String"/>
<many-to-one name="responsavel"
class="br.rn.cefet.nudes.modelo.vo.Responsavel"
cascade="none"
outer-join="true"
update="true"
insert="true"
access="property"
column="idresponsavel"/>
</class>
</hibernate-mapping>
Erro 505
type Exception Report
exception
javax.servlet.ServletException: Could not execute JDBC batch update
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
root cause
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
/* Essas tres abaixo são classes minhas */
br.rn.cefet.nudes.modelo.percistencia.GenericDAO.executeOperacao(GenericDAO.java:59)
br.rn.cefet.nudes.modelo.negocio.Cadastrador.execute(Cadastrador.java:26)
br.rn.cefet.nudes.view.struts.action.CadastroProjetoAction.execute(CadastroProjetoAction.java:29)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
Código da classe CadastroProjetoAction
imports...
public class CadastroProjetoAction extends Action{
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest req, HttpServletResponse res) throws Exception {
ProjetoForm projetoForm = (ProjetoForm)actionForm;
if (projetoForm.getOperacao() == OperacaoView.REMOVER){
projetoForm.getProjeto().setId(Integer.parseInt(req.getParameter("id")));
}
Cadastrador.getInstance().execute(projetoForm.getOperacao(), projetoForm.getProjeto()); //linha 29
return actionMapping.findForward("sucesso");
}
}
Código Classe Cadastrador
imports...
public class Cadastrador extends AbstractNegocio implements Negocio {
private static Cadastrador singleton;
private Cadastrador() {
}
public synchronized static Cadastrador getInstance() {
if (singleton == null)
singleton = new Cadastrador();
return singleton;
}
/*VOInterface é uma interface que é implementada pelas classes de modelo. Projeto e Responsavel.
*/
public void execute(int operacao, VOInterface vo) throws DAOException {
GenericDAO dao = getDAO();
try {
//linha 26
dao.executeOperacao(operacao, vo);
} catch (DAOException e) {
System.out.println(e.getMessage());
} finally {
dao.close();
}
}
}
Código Classe GenericDAO
imports...
public class GenericDAO implements Persistencia {
private Session session;
public static final int INSERIR = 1;
public static final int ATUALIZAR = 2;
public static final int REMOVER = 3;
public GenericDAO() {
this.session = HibernateSessionFactory.currentSession();
}
public void executeOperacao(int operacao, VOInterface vo)
throws DAOException {
Transaction tr = this.session.beginTransaction();
switch (operacao) {
case INSERIR:
this.insert(vo);
break;
case ATUALIZAR:
this.update(vo);
break;
case REMOVER:
this.delete(vo);
break;
}
//linha 59
tr.commit();
}
...continua classe
Meu problema é não ter nem noção do que significa esse erro.
Nem noção.