每个人。
由于我现在使用的主机(GlassFish 4、JEE 7 和 JPA 2.1),我最近不得不从 Hibernate 更改为 EclipseLink,但是在删除和更新 PrimeFaces 数据表中的记录时遇到了一些问题。
数据表中带有删除链接的列:
<p:column>
<f:facet name="header">Deleta</f:facet>
<h:form>
<h:commandLink action="#{grupoMB.deletaPorNome(grupo.nome)}">excluir</h:commandLink>
</h:form>
</p:column>
方法 deletePorNome(String nome) -- deletaPorNome = "removeByName":
public void deletaPorNome(String nome) {
this.grupoRepositorio.excluiPorNome(nome);
this.grupos = null;
}
GrupoRepositorio 是我的具有 CRUD 操作的无状态会话 Bean:
public void excluiPorNome(String nome) {
this.manager.getTransaction().begin();
Query q = this.manager
.createQuery("SELECT x FROM Grupo x WHERE x.nome = :nome");
q.setParameter("nome", nome);
Grupo grupo = (Grupo) q.getSingleResult();
this.manager.remove(grupo);
this.manager.getTransaction().commit();
this.manager.close();
}
无论我在此方法中使用什么:TypedQuery、本机查询、DatabaseSession deleteObject 等。没有任何效果。有什么问题?