Mostrar os dados somente de um usuário

Boa noite, pessoal.

Quando carrego a página de usuários, ela mostra todos os usuários cadastrados.
Eu quero que mostre somente o que eu digitar no inputText. Como faço isso?
Vou postar aqui já meu código pronto que lista todos.

UsuarioBean

@ManagedBean(name="usuarioBean")
@ViewScoped
public class UsuarioBean implements Serializable {
 
    private Usuario usuario;
    private List<Usuario> usuarios;

    public List<Usuario> getUsuarios() {
        UsuarioDao usuarioDao = new UsuarioDaoImpl();
        usuarios = usuarioDao.buscarTodos();
        return usuarios;
    }

UsuarioDaoImpl

public class UsuarioDaoImpl implements UsuarioDao{

      public List<Usuario> buscarTodos() {
        List<Usuario> listUsuarioBuscarTodos = null;
        try {
            session = HibernateUtil.getSession();
            listUsuarioBuscarTodos = session.createQuery("from Usuario ORDER BY name ASC").list();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.close();
        }
        return listUsuarioBuscarTodos;
    }

Alguma ideia?

Bom dia amigo, cria um novo metodo e usa a clausula where na query para fazer a filtragem.

Query query = session.createQuery("FROM Usuario where cpf = :cpf")
query.setString("cpf", usuario.getCpf());

Boa tarde!

Fiz como vc disse o DAO, acho que ficou legal…porém nao sei se o bean ficou certo…pois me retorna java.lang.NullPointerException no #{usuarioBean.buscarPorUser(usuario)}

DAO

@Override
    public Usuario buscarPorUsuario(Usuario usuario) {
        session = HibernateUtil.getSession();
        String sql = "from Usuario where username=:username";
        Query query = session.createQuery(sql);
        query.setString("username", usuario.getUsername());
        return (Usuario) query.uniqueResult();
    }

BEAN

public void buscarPorUser(Usuario usuario){
    UsuarioDao usuarioDao = new UsuarioDaoImpl();
    usuarioDao.buscarPorUsuario(usuario);
}

HTML

 <p:commandButton update=":frmUsers:datatable" actionListener="#{usuarioBean.buscarPorUser(usuario)}" 
                                     oncomplete="dlgConfirmReset.show()" image="icon-edit" title="Edit"/>

Coloca um System.out.printl(usuario.getUsername()), só para ver se o valor esta vindo nulo.

Vixe…tentei várias coisas aqui…nao ta nem passando por ele…

:sweat:

public Usuario buscarPorUsuario(Usuario usuario) {
        session = HibernateUtil.getSession();
        String sql = "from Usuario where username='teste'";
        Query query = session.createQuery(sql);
        query.setString("username", usuario.getUsername());
        System.out.println("Resposta: "+usuario.getUsername());
        return (Usuario) query.uniqueResult();
    }

query.setString("username", usuario.getUsername());

Isso não precisa, você só usará o setString quando você tiver passando um parametro que o valor é uma String, como na tentativa passada:

Eu segui o exemplo que vc disse no primeiro post. Lá vc colocou o setString e também o :username
Agora fiquei confuso… uma coisa substitui a outra?

Tentei aqui sem e continua com nullpointer

Valeu

o :username é um parâmetro, poderia ser qualquer nome ali, mas deixamos o mesmo nome do atributo para facilitar o entendimento.
query.setString(“username”, uruario.getUsername()); Aqui você diz que quer substituir o username pelo valor usuario.getUsername()

Coloca um System.out.printl(usuario.getUsername()), no começo do método, só para ver se o valor esta vindo nulo.