Definición previa y agrupación de un conjunto de columnas para una consulta

Puede seleccionar y agrupar columnas para utilizarlas en la búsqueda de una consulta (select/list) añadiendo un parámetro QueryGroup en la definición de entidad.

Cada QueryGroup contiene las columnas que se utilizarán para una consulta. Cada QueryGroup se identifica mediante un nombre exclusivo mediante el que deben especificarse las columnas.

Se proporciona una correlación global QueryGroupMap en la clase Entity, que contiene un nombre de grupo de consulta exclusivo y los atributos correspondientes a las columnas del grupo de consulta. Esta correlación se llena cuando se carga el repositorio de entidades.

Nota: El nombre de QueryGroup no debe estar en blanco. Al añadir un nombre de grupo de consulta a la correlación, compruebe si el nombre existe en la correlación.

Cada entidad puede tener varios grupos de consulta, que se definen bajo un parámetro QueryGroups:

<Entity> 
  <QueryGroups> 
    <QueryGroup Name="PasswordQueryGroup">
       <Column Name="PASSWORD"/>
       <Column Name="IS_PASSWORD_ENCRYPTED"/> 
       <Column Name="SALT"/>
     </QueryGroup> 
     <QueryGroup Name="BusinessQueryGroup"> 
       <Column Name="BUSINESS_KEY"/> 
       <Column Name="CONTACTADDRESS_KEY"/> 
       <ColumnName="BILLINGADDRESS_KEY"/> 
      </QueryGroup> 
   </QueryGroups> 
</Entity>

Bajo el grupo de consulta se puede especificar cualquier número de columnas. Sin embargo, las columnas no deben repetirse para un grupo de consulta.

Nota: Una columna de un QueryGroup puede formar parte de otros QueryGroups. Un grupo de consulta debe contener al menos una columna válida y las columnas definidas para un grupo de consulta deben existir en la entidad. No se pueden añadir columnas virtuales al grupo de consulta.
Para obtener una lista de todas las columnas que forman parte de un determinado QueryGroup, utilice el método getColumnSetForQueryGroup en el siguiente formato:
public Set getColumnSetForQueryGroup(String queryGroupName)
También se pueden utilizar los métodos siguientes con parámetros específicos para obtener una lista de columnas de un grupo de consultas:
  • selectWithWhereForQueryGroup
  • listWithWhereForQueryGroup
Por ejemplo:
public YFS_User selectWithWhereForQueryGroup(YFCDBContext ctx, 
String aWhereClause, String queryGroupName) throws YFCDBException{ 
Set columns = getColumnSet(queryGroupName); 
return selectWithWhere(ctx, aWhereClause, columns); 
}