JSP - java.lang.IllegalArgumentException: Parameter value [11] did not match expected type [java.lang.Integer (n/a)]

gente estou tentando passar o código no where porém está dando esse erro.
eu sei que é erro de conversão porém n sei como resolver. todo mundo manda eu fazer exatamente dessa forma e mesmo assim continua o erro.

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+"'");
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);
tq.setParameter("user", user);



//List<Usuario> resultado = tq.getResultList();

//obconsulta.close();




return tq.getResultList( );
}

Aguarde a resposta no topico ja criado.

fiz essa mudança porém na parte onde preenche as informações no formulário está dando erro no user.

<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>

	<% ListarUsuarios resultado = new ListarUsuarios();
	List<Usuario> obtregistro = resultado.obterusuario(user);  //O ERRO ESTÁ AQUI.

	for(Usuario p: obtregistro)
	{
		%>
<body >

o erro do console foi esse.
java.lang.NoSuchMethodError: com.cleiton.consultasAtualizarDeletar.ListarUsuarios.obterusuario(Ljava/lang/String;)Ljava/util/List;

O erro informado fala que nao foi encontrado esse metodo.

De um clean no projeto para que as class seja compilada novamente.

ele encontra o método. porém qd eu boto user ele dá erro.

rapaz, esse método ele faz o seguinte ele faz uma consulta obtendo apenas um único usuário. e em seguida ele preenche o formulário.
o problema que eu preciso passar o código do usuário como parâmetro. porém não vai de jeito nenhum.