Puede generar un bean para que contenga el conjunto de resultados que la sentencia
devuelve. Puede utilizar una sentencia SELECT de SQL que se encuentre en cualquier literal de serie
de una clase Java que contenga una
sentencia SELECT de SQL válida, siempre que la clase Java aparezca en
un proyecto Java que soporte pureQuery.
Procedimiento
Para generar un bean que contenga el conjunto de resultados de una sentencia SELECT.
- En el editor Java, coloque el cursor
de texto dentro de la sentencia, pulse con el botón derecho del ratón la sentencia y, a continuación,
seleccione . Se abrirá el asistente para Generar código pureQuery a partir de una sentencia SQL.
- Efectúe los pasos que le indique el asistente.
- Pulse Finalizar para generar el bean.
Resultados
Si no utiliza cláusulas AS en consultas SQL que produzcan uniones,
o que contengan columnas calculadas, los conjuntos de resultados pueden contener
columnas con nombres que no sean exclusivos. Si el entorno de trabajo puede resolver
este problema al generar un bean para representar los conjuntos de resultados dependerá
del tipo de base de datos que la aplicación utiliza.
- DB2 para Linux, UNIX
y Windows; DB2 para z/OS; Informix Dynamic Server: el
entorno de trabajo utiliza la anotación @Column en las propiedades que se correlacionan con las columnas que tienen el
mismo nombre que una o varias columnas.
Por
ejemplo, suponga que la aplicación ejecuta la siguiente consulta
simple:
select a.col1, b.col1 from a, b where a.id=b.id;
Los métodos
set() para las
propiedades correspondientes de los beans que contienen los resultados de la consulta
necesitan anotaciones
@Column que proporcionen el nombre de la tabla en
la que aparecen las dos columnas de
id:
public class JoinExample{
private int a_id;
private int b_id;
@Column (name="id", table="a")
public void setA_id (int a_id)
{
this.a_id = a_id;
}
public int getA_id ()
{
return a_id;
}
@Column (name="id", table="b")
public void setB_id (int b_id)
{
this.b_id = b_id;
}
public int getB_id ()
{
return b_id;
}
}
- Oracle: el entorno de trabajo no utiliza el atributo table de la anotación
@Column para correlacionar columnas problemáticas con propiedades del bean. Debe correlacionarlas
de una de estas maneras:
- Utilice la cláusula AS de la sentencia SELECT para asignar nombres exclusivos a las columnas
de resultados de la consulta.
- Utilice un RowHandler que pueda trabajar con columnas de resultados de la consulta por sus números
de índice, en lugar de por sus nombres. Consulte Interfaz RowHandler <ROW>.