java - sirve - seleccionar una fila de un jtable desde codigo
¿Cómo se selecciona una columna usando Hibernate? (3)
Me gustaría seleccionar una sola columna en lugar de un objeto completo, usando Hibernate. Hasta ahora tengo esto:
List<String> firstname = null;
firstname = getSession().createCriteria(People.class).list();
Mi problema es que el código anterior devuelve toda la tabla People como un objeto en lugar de solo "firstname". No estoy seguro de cómo especificar que solo se devuelva "nombre" en lugar de todo el objeto.
Puede establecer la proyección para esto como:
.setProjection(Projections.property("firstname"))
Con esto solo puedes obtener el primer nombre a cambio.
He encontrado otro enlace en la pila con el mismo escenario. Espero que esto también ayude a ¿Cómo utilizar los criterios de hibernación para devolver solo un elemento de un objeto en lugar de todo el objeto?
Puede usar ProjectionList si desea una proyección base de condición, por ejemplo
ProjectionList prjection = Projections.projectionList();
if(abc){
prjection.add(Projections.property("firstname"));
}
else if(xyz){
prjection.add(Projections.property("lastname"));
}
........
criteria.setProjection(prjection);
Si necesita consultar 2 o más columnas y obtener los valores de la consulta, esta es la manera de hacerlo:
....
crit.setProjection(Projections.property("firstname"));
crit.setProjection(Projections.property("lastname"));
List result = crit.list();
...
for (Iterator it = result.iterator(); it.hasNext(); ) {
Object[] myResult = (Object[]) it.next();
String firstname = (String) myResult[0];
String lastname = (String) myResult[1];
....
}