Estou fazendo uma aplicação que usa Hibernate
O meu problema eh: tem uma entidade Categoria. uma categoria pode ter varios Produtos e um Produto pode pertencer a uma unica categoria. Isso gera um relacionamento um-pra-muitos entres essas duas entidades.
Cadastrei no banco uma Categoria e associei a ela um Produto. Agora quero deletar essa categoria.
No mapeamento do realacionamento coloquei o atributo cascade=“all”.
Isso deveria fazer com que quando eu fosse deletar a categoria os Produto associada seriam automaticamente deletados. Mas soh q isso nao esta acontecendo.
Uma excecao esta sendo levantada dizendo que nao pode deletar a Categoria pq ela esta sendo referencia pro um produto.
O mapeamento do Categoria eh o seguinte:
<hibernate-mapping>
<class name=“restaurante.categoria.Categoria” table=“categorias”>
<id name=“codigo” column=“cat_codigo” type=“long” unsaved-value=“null”>
<generator class=“sequence”>
<param name=“sequence”>cat_sequence</param>
</generator>
</id>
<property name="nome" column="cat_nome" type="string" length="15" not-null="true"/>
</class>
</hibernate-mapping>
O mapeamento do Produto eh o seguinte:
<hibernate-mapping>
<class name=“restaurante.produto.Produto” table=“produtos”>
<id name=“codigo” column=“prd_codigo” type=“long” unsaved-value=“null”>
<generator class=“sequence”>
<param name=“sequence”>prd_sequence</param>
</generator>
</id>
<property name=“nome” column=“prd_nome” type=“string” length=“15” not-null=“true”/>
<property name=“unidade” column=“prd_unidade” type=“string” length=“15” not-null=“true”/>
<property name=“preco” column=“prd_preco” type=“double” not-null=“true”/>
<property name=“disponibilidade” column=“prd_disponibilidade” type=“boolean” not-null=“true”/>
<property name=“impressora” column=“prd_impressora” type=“string” not-null=“false”/>
<many-to-one name="categoria" class="restaurante.categoria.Categoria" column="prd_cat_codigo" cascade="delete"/>
</class>
</hibernate-mapping>
A excecao que tah dando eh a seguinte:
SEVERE: ERROR: fkc42c109a52ac2cdf referential integrity violation - key in categorias still referenced from produtos
06/08/2004 10:44:59 net.sf.hibernate.JDBCException <init>
SEVERE: could not delete: [restaurante.categoria.Categoria#1]
java.sql.SQLException: ERROR: fkc42c109a52ac2cdf referential integrity violation - key in categorias still referenced from produtos
at org.postgresql.core.QueryExecutor.executeV2(QueryExecutor.java:289)
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:105)
at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43)
at org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:515)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:50)
at org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:271)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.delete(EntityPersister.java:598)
at net.sf.hibernate.impl.ScheduledDeletion.execute(ScheduledDeletion.java:29)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2382)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2340)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2204)
at restaurante.persistencia.BaseDAO.removeObj(BaseDAO.java:34)
at restaurante.categoria.CategoriaDAO.removerCategoria(CategoriaDAO.java:64)
at restaurante.categoria.CategoriaDAO.main(CategoriaDAO.java:91)
06/08/2004 10:44:59 net.sf.hibernate.impl.SessionImpl execute
SEVERE: Could not synchronize database state with session
Se alguem souber o q eu estou fazendo de errado e poder me ajuda, agradeço 