Java 带有getSingleResult()的Erro
我试图返回查询的唯一结果,如下所示:Java 带有getSingleResult()的Erro,java,oracle,jpa,Java,Oracle,Jpa,我试图返回查询的唯一结果,如下所示: public UsuarioMenuVO consultar(UsuarioMenuVO usuarioMenuVO) throws MetrusDAOException { UsuarioMenuVO usuarioMenu = null; EntityManager em = null; StringBuilder jpql = new StringBuilder(); jpql.append("SELECT
public UsuarioMenuVO consultar(UsuarioMenuVO usuarioMenuVO) throws MetrusDAOException {
UsuarioMenuVO usuarioMenu = null;
EntityManager em = null;
StringBuilder jpql = new StringBuilder();
jpql.append("SELECT um FROM ").append(UsuarioMenuVO.class.getName()).append(" um ");
if(usuarioMenuVO.getId() != null){
jpql.append(" WHERE 1 = 1 ");
jpql.append(" AND um.id = :idUsuarioMenu ");
} else if(usuarioMenuVO.getUsuarioVO().getId() != null){
jpql.append(" WHERE um.usuarioVO.id = :idUsuario ");
}
try{
em = getEntityManager();
TypedQuery<UsuarioMenuVO> q = em.createQuery(jpql.toString(), UsuarioMenuVO.class);
if(usuarioMenuVO.getId() != null){
q.setParameter("idUsuarioMenu", usuarioMenuVO.getId());
} else if(usuarioMenuVO.getUsuarioVO().getId() != null){
q.setParameter("idUsuario", usuarioMenuVO.getUsuarioVO().getId());
}
usuarioMenu = (UsuarioMenuVO)q.getSingleResult();
return usuarioMenu;
}catch(Exception e){
logger.error(e, e);
throw new MetrusDAOException(e);
}finally {
closeEntityManager(em);
}
}
查询在Oracle中执行时返回值。认为问题出在getSingleResult()上,我将结果放在一个列表中,并试图从列表中获取索引0,但也出现了一个错误。我不知道该怎么办了我想你的数据库里没有数据了。这就是你得到这个的原因。另外,您想在这里做什么?@user404但是有数据,当我在数据库中执行应用程序组装的同一个查询时,数据被返回。请检查一下,您是如何将数据插入数据库的?如果从数据库客户端插入,是否提交了该事务?
[EL Fine]: 2020-10-16 09:55:34.255--ServerSession(1977519967)--Connection(1898684397)--Thread(Thread[[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)',5,Pooled Threads])--SELECT COD_USUARIO_MENU, STA_ADMINISTRA_USUARIO, COD_ATUALIZACAO, DAT_ATUALIZ, DAT_CRIACAO_USUARIO, DAT_ULT_ACESSO, DAT_VALIDADE, CRP_PASSWORD, COD_SETOR, SIT_USUARIO, STA_SUPER, SEQ_USUARIO FROM ME_USUARIOS_MENU WHERE ((? = ?) AND (COD_USUARIO_MENU = ?))
bind => [1, 1, "ANILDO"]
16/out 09:55:34,262 ERROR (UsuarioMenuDAO.java:53) - javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
javax.persistence.NoResultException: getSingleResult() did not retrieve any entities.
at org.eclipse.persistence.internal.jpa.QueryImpl.throwNoResultException(QueryImpl.java:976)
at org.eclipse.persistence.internal.jpa.QueryImpl.getSingleResult(QueryImpl.java:526)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:400)