Estava implementado o CRUD para os autores do livro, porem o "remove" não esta funcionando conforme esperado.
Meu console quando clico em remover no autor:
FASE: RESTORE_VIEW 1
FASE: APPLY_REQUEST_VALUES 2
FASE: PROCESS_VALIDATIONS 3
FASE: UPDATE_MODEL_VALUES 4
FASE: INVOKE_APPLICATION 5
Removendo Autor
jun 20, 2017 11:04:41 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1451, SQLState: 23000
jun 20, 2017 11:04:41 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Cannot delete or update a parent row: a foreign key constraint fails (`livrariadb`.`livro_autor`, CONSTRAINT `FK9590997AD70C7E4A` FOREIGN KEY (`autores_id`) REFERENCES `autor` (`id`))
ERRO CAPTURADO: javax.persistence.RollbackException: Error while committing the transaction
FASE: RENDER_RESPONSE 6
Meu codigo no autor.xhtml:
<h:form id="formTabelaAutores">
<fieldset>
<legend>Autores Cadastrados</legend>
<h:dataTable id="tabelaLivros" value="#{autorBean.autores}"
var="autor">
<h:column>
<f:facet name="header">Nome Autor</f:facet>
<h:outputText value="#{autor.nome}" />
</h:column>
<h:column>
<f:facet name="header">Alterar</f:facet>
<h:commandLink value="alterar"
action="#{autorBean.carregar(autor)}" />
</h:column>
<h:column>
<f:facet name="header">Remover</f:facet>
<h:commandLink value="Remover"
action="#{autorBean.remover(autor)}" />
</h:column>
</h:dataTable>
</fieldset>
</h:form>
Meu codigo do autorBean.java:
public void remover(Autor autor){
try{
System.out.println("Removendo Autor");
new DAO<Autor>(Autor.class).remove(autor);
} catch (RollbackException re) {
System.out.println("ERRO CAPTURADO: " + re );
}
}
Coloquei o "try catch" para capturar o erro mais especifico pois anteriormente, sem esta opção, o erro era muito grande.
Alguém já passou por esse erro ? Alguma dica ?
OBS: lembrando que a opção de remover esta funcionando normalmente com livro.