Jsp - passando parâmetro em uma lista [resolvido]

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)]

algué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));

//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/