Boa noite galera do GUJ.
Venho mais uma vez solicitar ajuda sobre Hibernate.
O problema é que eu não consigo deletar um registro (objeto) da minha classe "Item".
public class Item {
private Long idItem;
private String titulo;
private String subTitulo;
private String localizacao;
private TipoMaterial tipoMaterial;
private String editora;
private Date dataPublicacao;
private String edicao;
private Boolean script;
private Boolean acompanhadoDeAtividade;
private String dadosTecnicos;
private Classificacao classificacao;
private String sinopse;
private Idioma idioma;
private Status status;
private Set autores = new HashSet();
private Set capitulos = new HashSet();
private Set tagsItens = new HashSet();
//aqui vão: contrutor, setters e getters...
<hibernate-mapping>
<class name="model.Item" table="item">
<id name="idItem">
<generator class="native"/>
</id>
<property name="titulo" not-null="true"/>
<property name="subTitulo"/>
<property name="localizacao"/>
<many-to-one class="model.TipoMaterial" name="tipoMaterial" column="idTipoMaterial" foreign-key="FK_idTipoMaterial" not-null="true"/>
<set name="autores" table="Item_Autores">
<key column="idItem"/>
<many-to-many column="idAutor" class="model.Autor"/>
</set>
<property name="editora"/>
<property name="dataPublicacao" type="timestamp" />
<property name="edicao"/>
<property name="script" type="yes_no"/>
<property name="acompanhadoDeAtividade" type="yes_no"/>
<property name="dadosTecnicos"/>
<many-to-one class="model.Classificacao" name="classificacao" column="idClassificacao" foreign-key="FK_idClassificacao" not-null="true"/>
<property name="sinopse"/>
<many-to-one class="model.Idioma" name="idioma" column="idIdioma" foreign-key="FK_idIdioma" not-null="true"/>
<many-to-one class="model.Status" name="status" column="idStatus" foreign-key="FK_idStatus" not-null="true"/>
<set name="capitulos" table="capitulo" lazy="true" cascade="all-delete-orphan">
<key column="idItem" foreign-key="FK_idItem"/>
<one-to-many class="model.Capitulo"/>
</set>
<set name="tagsItens" table="Item_TagItens">
<key column="idItem"/>
<many-to-many column="idTagItem" class="model.TagItem"/>
</set>
</class>
</hibernate-mapping>
//Abre a sessão
Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
sessao.beginTransaction();
//Pega os parametros passados e armazena em objeto
ItemManager itemManager = new ItemManager();
Item currentItem = (Item) sessao.load(Item.class, (long) Long.parseLong(request.getParameter("idItem")));
//Deleta objeto
sessao.delete(currentItem);
sessao.getTransaction().commit();
HibernateUtil.getSessionFactory().close();
response.sendRedirect("../?pag=viewItem&mensagem=31");
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /includes/deleteItem.jsp at line 14
11:
12: //Deleta objeto
13: sessao.delete(currentItem);
14: sessao.getTransaction().commit();
15: HibernateUtil.getSessionFactory().close();
16: response.sendRedirect("../?pag=viewItem&mensagem=31");
17: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
(...)
root cause
java.sql.BatchUpdateException: Column 'idItem' cannot be null
(...)
Obrigado desde já.
Lucas Catón.