Dúvida para criar um método!

Estou com dificuldade de fazer isto :
Controller

@Get
	@Path("/usuario/editar/{usuario.id}")
	public void editar(Usuario usuario) {
		Usuario user = usuarioDao.
                        loadById(usuario.getId());
		        result.
                        use(json()).
                        from(user).
                        include("contato").
                        serialize();
	}

DAO

[code]public Usuario loadById(Long id) {
if (id != null) {
Usuario usuario = new Usuario();
usuario.setId(id);
usuario.setEmail("teste@email.com");
usuario.setNome(“FULANO”);
usuario.setSenha(“teste”);
Contato contato = new Contato();
contato.setCelular(“13012010”);
contato.setTelefone(“13012005”);
usuario.setContato(contato);
return usuario;

	}
            	return null;
}

[/code]

Só que ao invés de pegar esse valor LoadBy ja setado, quero pegalo do banco :

Controller

 @Get
	@Path("/clienteFisica/pesquisar/{clienteFisica.clfiPkId}")
	public void pesquisar(ClienteFisica clienteFisica) {
		ClienteFisica user = ClienteFisicaDao
                        .loadById(clienteFisica.getClfiCpf());
		        result.
                        use(json()).
                        from(user).
                        include("contato").
                        serialize();
	}

DAO

[code] public static ClienteFisica loadById(String clfiCpf) {
return this.session.createCriteria(ClienteFisica.class)
.addOrder(Order.asc(“clfiNome”))
.add(Restrictions.eq(“clfiStatus”,“Ativo”))
.list();

}

[/code]

Alguém pode da uma ajuda nesse LoadById ?

Obrigado !

se é pelo id:

session.get(Usuario.class, id);