Já procurei em diversos lugares e não consegui uma solução, estou criando uma aplicação em Java Web utilizando o Hibernate, ao tentar excluir um arquivo que possui filhos o mesmo não é excluído gerando uma exceção. Até ai beleza não quero que seja excluído mesmo, por isso não utilizei o cascade. Quero apenas que retorne a mensagem dizendo que a operação não pode ser efetuada.
Exceção
jun 04, 2017 1:39:29 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute ADVERTÊNCIA: /pages/nucleoListar.xhtml @25,24 value="#{nucleoMB.nucleos}": Error reading ‘nucleos’ on type controle.NucleoMB javax.el.ELException: /pages/nucleoListar.xhtml @25,24 value="#{nucleoMB.nucleos}": Error reading ‘nucleos’ on type controle.NucleoMB at com.sun.faces.facelets.el.TagValueExpression.getValue(Unknown Source) at javax.faces.component.ComponentStateHelper.eval(Unknown Source) at javax.faces.component.ComponentStateHelper.eval(Unknown Source) at javax.faces.component.UIData.getValue(Unknown Source) at org.primefaces.component.api.UIData.getDataModel(UIData.java:629) at org.primefaces.component.api.UIData.setRowModel(UIData.java:436) at org.primefaces.component.api.UIData.setRowIndex(UIData.java:428) at org.primefaces.component.api.UIData.processPhase(UIData.java:280) at org.primefaces.component.api.UIData.processDecodes(UIData.java:245) at javax.faces.component.UIForm.processDecodes(Unknown Source) at javax.faces.component.UIComponentBase.processDecodes(Unknown Source) at org.primefaces.component.panel.Panel.processDecodes(Panel.java:280) at javax.faces.component.UIComponentBase.processDecodes(Unknown Source) at javax.faces.component.UIComponentBase.processDecodes(Unknown Source) at javax.faces.component.UIViewRoot.processDecodes(Unknown Source) at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(Unknown Source) at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source) at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source) at javax.faces.webapp.FacesServlet.service(Unknown Source) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: javax.el.ELException: Error reading ‘nucleos’ on type controle.NucleoMB at javax.el.BeanELResolver.getValue(BeanELResolver.java:101) at com.sun.faces.el.DemuxCompositeELResolver._getValue(Unknown Source) at com.sun.faces.el.DemuxCompositeELResolver.getValue(Unknown Source) at org.apache.el.parser.AstValue.getValue(AstValue.java:169) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) … 40 more Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255) at dominio.dao.NucleoDAO.lerTodos(NucleoDAO.java:55) at controle.NucleoMB.getNucleos(NucleoMB.java:33) at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.el.BeanELResolver.getValue(BeanELResolver.java:97) … 44 more Caused by: org.hibernate.exception.GenericJDBCException: could not execute query at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.loader.Loader.doList(Loader.java:2536) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) at org.hibernate.loader.Loader.list(Loader.java:2271) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246) … 50 more Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:305) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208) at org.hibernate.loader.Loader.getResultSet(Loader.java:1953) at org.hibernate.loader.Loader.doQuery(Loader.java:802) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) at org.hibernate.loader.Loader.doList(Loader.java:2533) … 58 more
jun 04, 2017 1:39:29 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
GRAVE: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)
at dominio.dao.NucleoDAO.lerTodos(NucleoDAO.java:55)
at controle.NucleoMB.getNucleos(NucleoMB.java:33)
at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:97)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(Unknown Source)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(Unknown Source)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at com.sun.faces.facelets.el.TagValueExpression.getValue(Unknown Source)
at javax.faces.component.ComponentStateHelper.eval(Unknown Source)
at javax.faces.component.ComponentStateHelper.eval(Unknown Source)
at javax.faces.component.UIData.getValue(Unknown Source)
at org.primefaces.component.api.UIData.getDataModel(UIData.java:629)
at org.primefaces.component.api.UIData.setRowModel(UIData.java:436)
at org.primefaces.component.api.UIData.setRowIndex(UIData.java:428)
at org.primefaces.component.api.UIData.processPhase(UIData.java:280)
at org.primefaces.component.api.UIData.processDecodes(UIData.java:245)
at javax.faces.component.UIForm.processDecodes(Unknown Source)
at javax.faces.component.UIComponentBase.processDecodes(Unknown Source)
at org.primefaces.component.panel.Panel.processDecodes(Panel.java:280)
at javax.faces.component.UIComponentBase.processDecodes(Unknown Source)
at javax.faces.component.UIComponentBase.processDecodes(Unknown Source)
at javax.faces.component.UIViewRoot.processDecodes(Unknown Source)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(Unknown Source)
at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)
at javax.faces.webapp.FacesServlet.service(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2536)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)
... 50 more
Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1998)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:570)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:420)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:305)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
at org.hibernate.loader.Loader.doQuery(Loader.java:802)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2533)
... 58 more
Nucleo DAO
@SuppressWarnings("unused")
public class NucleoDAO extends JpaDAO<Nucleo> {
public NucleoDAO() {
super();
}
/*
* public NucleoDAO(EntityManager manager){ super(manager); }
*/
public Nucleo lerPorId(int id) {
Nucleo resultado = null;
Query consulta = this.getEntityManager().createQuery(
"from Nucleo a where n.nome = :nnome");
consulta.setParameter("id", lerPorId(null));
try {
resultado = (Nucleo) consulta.getSingleResult();
} catch (NoResultException e) {
resultado = null;
}
return resultado;
}
@SuppressWarnings("unchecked")
@Override
public List<Nucleo> lerTodos() {
List<Nucleo> resultado = null;
Query consulta = this.getEntityManager().createQuery(
"from Nucleo a order by a.nome");
try {
resultado = (List<Nucleo>) consulta.getResultList();
} catch (NoResultException e) {
resultado = null;
}
return resultado;
}
}
Método Excluir do MB
public String acaoExcluir() {
Long id = JSFUtil.getParametroLong("itemId");
Nucleo objetoDoBanco = this.dao.lerPorId(id);
this.dao.excluir(objetoDoBanco);
// limpa o objeto da pagina
this.setNucleo(new Nucleo());
// limpa a lista
this.nucleos = null;
// executa a ação exclusão e retorna a sua pagina
return "nucleoListar?faces-redirect=true";
}
Classe
Entity
@Table(name = "tab_nucleos")
public class Nucleo implements EntityIdSequencial, Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "Nucleo_ID", strategy = GenerationType.SEQUENCE)
@SequenceGenerator(name = "Nucleo_ID", sequenceName = "SEQ_Nucleo", allocationSize = 1)
private Long id;
@Column
private String nome;
private String endereco;
private String bairro;
private String cidade;
private String estado;
private String cep;
private String telefone;
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public int hashCode() {
if (this.id == null)
return 0;
return this.id.hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Nucleo other = (Nucleo) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
@Override
public String toString() {
return this.nome;
}
}