sábado, 8 de diciembre de 2012

Liferay 6.1 : Dynamic Query

Descargar Track:
Dynamic query es una manera de hacer consultas directas usando las clases de Liferay para evitarnos la contruccion de un nuevo metodo en la capa de servicios asi ahorrandonos un despliegue innecesario, consultanto directamente mediante funciones de liferay a las tablas desde los portlets, para ello el portal nos proporciona la clase DynamicQuery asociada a todas las funciones LocalServiceUtil que Liferay genera automaticamente al mapear nuestro servicio.

El unico problema es tener el classloader necesario que dependera a que parte del portal llamamos:


CASO 1: Desde un portlet llamamos alguna clase de Liferay (Ejemplo Group)

  
    ClassLoader classLoader =  PortalClassLoaderUtil.getClassLoader();
DynamicQuery query =DynamicQueryFactoryUtil.forClass(Group.class,classLoader);
    


CASO 2: Desde un portlet llamamos alguna clase de otro portlet (Considerando la dependencia de portlets)
ClassLoader classLoader = (ClassLoader)PortletBeanLocatorUtil.locate(ClpSerializer.getServletContextName(),"portletClassLoader");
DynamicQuery query =DynamicQueryFactoryUtil.forClass(MyEntity.class,classLoader)


CASO 3: Desde un portlet interno de Liferay llamamos alguna clase de Liferay (Ejemplo Group)

  
DynamicQuery query =DynamicQueryFactoryUtil.forClass(Group.class);
    


Estas son las maneras de generar una clase DynamicQuery segun la casuistica que manejemos.