Consultarconsulta=newConsultar();EntityManagerobconsulta=consulta.getEntityManager();System.out.println("passou"+user);Stringquery=("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();returntq.getResultList();}
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){
Consultarconsulta=newConsultar();EntityManagerobconsulta=consulta.getEntityManager();System.out.println("passou"+user);Stringquery=("SELECT U FROM CADASTRO_USUARIO U WHERE U.USR_CODIGO='"+user+"'");TypedQuery<Usuario>tq=obconsulta.createQuery(query,Usuario.class);tq.setParameter("user",user);
J
jonathan.sky
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/
C
Cleiton_Conceicao
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)]
C
Cleiton_Conceicao
alguém??
C
campelo.m
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));
J
jonathan.sky
//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( );
<%@pagelanguage=“java”contentType="text/html; charset=ISO-8859-1"pageEncoding=“ISO-8859-1”%>Usuariousuario=resultado.obterUsuario(usuario.id);<%usuario.nome%><%usuario.sobreNome%><!--fim-->publicListobterUsuario(Longid){Consultarconsulta=newConsultar();EntityManagerem=consulta.getEntityManager();Stringquery="SELECT u FROM cadastro_usuario u WHERE u.usr_codigo = :id";TypedQuery<Usuario>q=em.createQuery(query,Usuario.class);q.setParameter("id",id);Usuarioresultado=null;try{resultado=q.getSingleResult();}catch(NoResultExceptione){//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. */}}
??
pq eu botei porém está retornando vários erros.
J
jonathan.sky
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.
C
Cleiton_Conceicao
estou usando jsp.
é um projeto da faculdade e o professor só quer nessa linguagem.
C
Cleiton_Conceicao
é 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.
C
Cleiton_Conceicao
man tem como me auxiliar via whatsapp?
travei nesse método já tem uma semana.
J
jonathan.sky
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!