List com indices em texto

Bom dia,

queria saber se é possivel eu montar uma list que ao invés de ter seus indices em numero, os tenha com o nome da coluna, por exemplo se eu fazer um select nome, idade from pessoa e guardar um resultado em um List, ao inés de recuperar os dados assim list[0][1] eu queria recuperar assim list[nome][1], isso é possivel?

Em Java não tem como fazer isso, mas você pode montar um Map com o resultado, e aí buscar o valor (idade) pela chave (nome).

É q quando eu retorno o resultado usando hibernate e associando a list a uma entity, exemplo: List, eu consigo ler os dados assim list.nome, porem nao consigo ler dessa forma quando pego os dados usando sql puro, mas achei q seria possivel justamente pq com o hibernate da certo

Você pode montar uma lista de Maps:

List<Map<String,Object>> listaRegistros = new ArrayList<>();

while( rs.next() ){
   Map<String,Object> registro = new HashMap<>();

   registro.put( "id"  , rs.getInt("id"));
   registro.put( "nome"  , rs.getString("nome"));

   listaRegistros.add(registro);
}


//...

String nome = listaRegistros.get(1).get("nome");
 

[quote=rmendes08]Você pode montar uma lista de Maps:

[code]
List<Map<String,Object>> listaRegistros = new ArrayList<>();

while( rs.next() ){
Map<String,Object> registro = new HashMap<>();

registro.put( “id” , rs.getInt(“id”));
registro.put( “nome” , rs.getString(“nome”));

listaRegistros.add(registro);
}

//…

String nome = listaRegistros.get(1).get(“nome”);

[/code][/quote]

Então, só q não estou trabalhando com resultset, meu codigo ja traz os dados em list, da um olhada, ve se ha solução:

@SuppressWarnings({"rawtypes" })
	public List carrega_codescmec(Long codescmec) {
		return HibernateUtil.currentSession().createSQLQuery("SELECT a.id, a.codescmec, a.zonamec, a.nomesc, a.nomedep, a.email, a.endesc, a.complend,  " +
				"a.codcep, a.compcep, a.baiesc, a.mun, a.ddd, a.fone1, a.fone2, a.fax, a.categ, b.ano_censo, b.dt_ano_letivo_inicio, b.dt_ano_letivo_termino, " +
				"b.sigla, b.id_dependencia_adm, b.desc_categoria_escola_privada, b.id_mant_escola_privada_emp, b.id_mant_escola_privada_ong, " +
				"b.id_mant_escola_privada_sind, b.id_mant_escola_privada_s_fins,b.id_agua_filtrada, b.id_agua_rede_publica FROM ce_escola a, " +
				"ce_escola_censo2011_sp b WHERE a.codescmec = b.pk_cod_entidade and a.codescmec = "+ codescmec)
				.list();
	}