package com.fp.dto.query; import java.io.Serializable; /** * Objeto que contiene la definicion de un subquery asociado a un bean. * * @author Jorge Vaca. * @version 2.1 */ public class SubQuery implements Serializable { private static final long serialVersionUID = 1L; /** * Nombre del bean, asociado a una tabla a utilziar en el subquery. */ private String beanname; /** * Campo a consultar en el subquery. */ private String field; /** * Nombre con el cual se entrega la respuesta, si el alias es null toma el valor de campo. */ private String alias; /** * Where con el cual se ejecuta el subquery.
* Ejemplo considera i.pk.pais = t.pk.pais and i.provincia = t.provincia.
* siempre va (i) para el bean del subquery y (t) para la tabla externa. */ private String where; /** * Crea una instancia de SubQuery. * @param beanname Nombre del bean con el que se realiza el subquery. * @param campo Nombre de campo a consultar. * @param alias Alias con el cual se entrega la respuesta. * @param filtro Filtro a utilziar en el subquery. * @throws Exception */ public SubQuery(String beanname, String field, String alias, String joinFields) throws Exception { this.beanname = beanname; this.field = field; this.alias = alias; if (this.alias == null) { this.alias = this.field; } where = " where " + joinFields; } public String getSubQuery() throws Exception { return "(select i." + field + " from " + beanname + " i " + where + ")"; } /** * Entrega el valor de: beanname * @return String */ public String getBeanname() { return beanname; } /** * Fija el valor de: beanname * @param Valor a fijar en el atributo. */ public void setBeanname(String beanname) { this.beanname = beanname; } /** * Entrega el valor de: field * @return String */ public String getField() { return field; } /** * Fija el valor de: field * @param Valor a fijar en el atributo. */ public void setField(String field) { this.field = field; } /** * Entrega el valor de: alias * @return String */ public String getAlias() { return alias; } /** * Fija el valor de: alias * @param Valor a fijar en el atributo. */ public void setAlias(String alias) { this.alias = alias; } /** * Entrega el valor de: where * @return String */ public String getWhere() { return where; } /** * Fija el valor de: where * @param Valor a fijar en el atributo. */ public void setWhere(String where) { this.where = where; } }