alguém pode me dizer o que tem de errado?
@SuppressWarnings(“unchecked”)
public List obterusuario(String user){
Consultar consulta = new Consultar ();
EntityManager obconsulta = consulta.getEntityManager();
System.out.println("passou"+user);
String query = ("SELECT U FROM CADASTRO_USUARIO U WHERE U.USR_CODIGO='"+user+"'");
TypedQuery<Usuario> tq = (TypedQuery<Usuario>) obconsulta.createQuery(query,Usuario.class).getResultList();
tq.setParameter("user", user);
//List<Usuario> resultado = tq.getResultList();
//obconsulta.close();
return tq.getResultList( );
}
Ola,
voce esta fazendo um getResultList() no final do createQuery;
TypedQuery<Usuario> tq = (TypedQuery<Usuario>) obconsulta.createQuery(query,Usuario.class).getResultList();
tq.setParameter("user", user);
faça:
TypedQuery<Usuario> tq = obconsulta.createQuery(query,Usuario.class);
tq.setParameter("user", user);
eu fiz essa mudança, porém está me retornando o seguinte erro.
java.lang.IllegalArgumentException: Unknown parameter name : user
o código está assim.
public List obterusuario(String user){
Consultar consulta = new Consultar ();
EntityManager obconsulta = consulta.getEntityManager();
System.out.println("passou"+user);
String query = ("SELECT U FROM CADASTRO_USUARIO U WHERE U.USR_CODIGO='"+user+"'");
TypedQuery<Usuario> tq = obconsulta.createQuery(query,Usuario.class);
tq.setParameter("user", user);
String query = “SELECT U FROM CADASTRO_USUARIO U WHERE U.USR_CODIGO=:user”;
OBS: Acredito que seja valido pegar nota, pois está repetindo os mesmos erros. Go Go 0/
fiz essa mudança aí ele me retorna esse erro.
java.lang.IllegalArgumentException: Parameter value [11] did not match expected type [java.lang.Integer (n/a)]
No caso o parametro que voce esta passando é uma string e ele espera um integer.
Tem certeza que é o U.USR_CODIGO que precisa pesquisar?
Faça:
tq.setParameter("user", Integer.valueOf(user));
//Em vez de List<Usuario>
use Usuario
para o tipo de sua variavel.
** List obterRegistro = resultado.obterUsuario(usuario)**
** Usuario obterRegistro = resultado.obterUsuario(usuario.codigo);**
Se retorna 1 resultado, pode ser usado: return tq.getSingleResult( );
em vez de return tq.getResultList( );
<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>
Usuario usuario = resultado.obterUsuario(usuario.id);
<%usuario.nome%>
<%usuario.sobreNome%>
<!--fim-->
public List obterUsuario(Long id) {
Consultar consulta = new Consultar( );
EntityManager em = consulta.getEntityManager();
String query = "SELECT u FROM cadastro_usuario u WHERE u.usr_codigo = :id";
TypedQuery<Usuario> q = em.createQuery(query, Usuario.class);
q.setParameter("id", id);
Usuario resultado = null;
try {
resultado = q.getSingleResult( );
} catch (NoResultException e) {
//não encontrou, trate da maneira que quiser.
/*getSingleResult traz outra exception caso você tenha mais de 1 retorno. NonUniqueResultException, então deve tomar mais atenção. */
}
}
no jsp eu jogaria essa forma mesmo ?
Usuario usuario = resultado.obterUsuario(usuario.id);
<%usuario.nome%>
??
pq eu botei porém está retornando vários erros.
Foi de exemplo, agora pode recuperar normalmente pelo JSF. Não sei como o faz, pois não uso kk. Mas não deve iterar, Pois não é mais uma lista e sim um objeto.
estou usando jsp.
é um projeto da faculdade e o professor só quer nessa linguagem.
é por isso que eu estou correndo de java. o que eu quero é uma coisa muito simples.
em php eu faria sem nenhuma dificuldade.
o que eu quero é simplesmente conseguir pegar o código que está sendo passado como parâmetro no meu método.
List obtregistro = resultado.obterUsuario(user);
no lugar do user eu quero passar o código para poder filtrar a lista.
porém o java não reconhece essa variavel.
man tem como me auxiliar via whatsapp?
travei nesse método já tem uma semana.
Faz tempo que não uso JSP, mas tem boas apostilas como a da Caelum.
Exemplo:
<%=usuario.getNome( ) %>
Não dá para usar Frameworks sem saber o que está fazendo, o ideal seria fazer da maneira mais manual que é padrão em diversas linguagens ou estudar um livro abordando sobre o assunto para clarear as problemáticas. Go Go!
https://www.caelum.com.br/apostila-java-web/javaserver-pages/#6-4-exercicios-opcionais-lista-de-contatos-com-scriptlet
olhei o exemplo, porém ele passar uma lista simples. sem parâmetro. isso eu fiz sem dificuldade
conseguir resolver.
fiz assim.
<% ListarUsuarios resultado = new ListarUsuarios();
List<Usuario> obtregistro = resultado.obterusuario(Integer.parseInt(request.getParameter("user")));
for(Usuario p: obtregistro)
{
%>
<body >
Boa!, da uma estudada nas apostilas da Caelum. Vai facilitar bastante a sua vida estudantil e profissional. Go Go! o/