Galera estou com o seguinte erro ao tentar salvar um registro com este tipo de mapeamento.
Só para ressaltar minha entidade Tipopne é uma could table, ou seja, ja é populada.
Segue o mapeamento nas entidades:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(
name="idoso_tipopne"
, joinColumns={
@JoinColumn(name="matricula_idoso")
}
, inverseJoinColumns={
@JoinColumn(name="cod_tipoPNE")
}
)
private List<Tipopne> tipopnes;
@ManyToMany(mappedBy="tipopnes")
private List<Idoso> idosos;
quando tento dar um persist gera o seguinte erro:
Caused by: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: br.com.cci.modelo.entidade.Tipopne
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1215)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1148)
Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: br.com.cci.modelo.entidade.Tipopne
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:127)
at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:799)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:791)
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
Caused by: java.sql.BatchUpdateException: Cannot add or update a child row: a foreign key constraint fails (`cci`.`atividade_idoso`, CONSTRAINT `fk_atividade_has_idoso_idoso1` FOREIGN KEY (`matricula_idoso`) REFERENCES `idoso` (`matricula`) ON DELETE NO ACTION ON UPDATE NO ACTION)
at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:734)
at com.sun.gjc.spi.base.StatementWrapper.executeBatch(StatementWrapper.java:569)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 72 more