Dúvida com Criteria Hibernate

Olá pessoal, estou com uma dúvida bem básica de criação de uma criteria, atualmente minha criteria está assim na minha Controller:

public List<Cliente> pesquisar(Cliente cliente){ Session session = new AbreSession().getSession(); Transaction tx = session.beginTransaction(); return session.createCriteria(Cliente.class) .add(Restrictions.eq("cod_cliente", cliente.getCod_cliente())) .list(); }
Isso acima irá me retornar um SELECT com todas as colunas da tabela fazendo o filtro pelo código, o que eu não estou sabendo fazer usando criteria é trazer apenas uma coluna da tabela, algo como o SELECT: SELECT nome FROM cliente WHERE cod_cliente = ?, sei que usando QUERY em hibernate ficaria algo como: Query query = session.createQuery("SELECT cod_cliente FROM Cliente WHERE cod_cliente = ? ");. Eu gostaria de fazer esta consulta utilizando criteria, como eu deveria fazer para que na criteria traga apenas determinada coluna da tabela?

Olá!
Use Projections para trazer os atributos que deseja:

public List<Cliente> pesquisar(Cliente cliente){
		Session session = new AbreSession().getSession();
		Transaction tx = session.beginTransaction();
		return session.createCriteria(Cliente.class, "c")
		.add(Restrictions.eq("cod_cliente", cliente.getCod_cliente())
               .setProjection(Projections.projectionList()
                .add( Projections.property("c.nome").as("nome")))
		.list();
	}

[]s

Para funcionar deixei da seguinte forma:

public List<Cliente> pesquisar(Cliente cliente){ Session session = new AbreSession().getSession(); Transaction tx = session.beginTransaction(); return session.createCriteria(Cliente.class, "c") .setProjection(Projections.projectionList() .add( Projections.property("c.nome").as("nome"))) .add(Restrictions.eq("cod_cliente", cliente.getCod_cliente())) .list(); }

Mas e caso eu queira trazer mais de uma coluna, eu teria que usar algo como .add(Restrictions.allEq(meu_map)??

Se quiser mais de uma coluna, vai adicionando lá:

public List<Cliente> pesquisar(Cliente cliente){  
        Session session = new AbreSession().getSession();  
        Transaction tx = session.beginTransaction();  
        return session.createCriteria(Cliente.class, "c")    
                .setProjection(Projections.projectionList()  
                        .add( Projections.property("c.nome").as("nome")))  
                 .add( Projections.property("c.telefone").as("telefone")))  
                .add( Projections.property("c.email").as("email")))  
               .add( Projections.property("c.cpf").as("cpf")))  
                        .add(Restrictions.eq("cod_cliente", cliente.getCod_cliente()))
                .list();  
    }