List of usage examples for com.liferay.portal.kernel.dao.orm ExportActionableDynamicQuery.AddCriteriaMethod addCriteria
protected void addCriteria(DynamicQuery dynamicQuery)
From source file:com.liferay.journal.exportimport.data.handler.JournalPortletDataHandler.java
License:Open Source License
protected ActionableDynamicQuery getArticleActionableDynamicQuery(final PortletDataContext portletDataContext) { ExportActionableDynamicQuery exportActionableDynamicQuery = _journalArticleLocalService .getExportActionableDynamicQuery(portletDataContext); final ExportActionableDynamicQuery.AddCriteriaMethod addCriteriaMethod = exportActionableDynamicQuery .getAddCriteriaMethod();// ww w. j a v a 2 s. c o m exportActionableDynamicQuery.setAddCriteriaMethod(new ActionableDynamicQuery.AddCriteriaMethod() { @Override public void addCriteria(DynamicQuery dynamicQuery) { addCriteriaMethod.addCriteria(dynamicQuery); if (portletDataContext.getBooleanParameter(NAMESPACE, "version-history")) { return; } Class<?> clazz = getClass(); DynamicQuery versionArticleDynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, "versionArticle", clazz.getClassLoader()); versionArticleDynamicQuery.setProjection(ProjectionFactoryUtil .alias(ProjectionFactoryUtil.max("versionArticle.version"), "versionArticle.version")); // We need to use the "this" default alias to make sure the // database engine handles this subquery as a correlated // subquery versionArticleDynamicQuery.add(RestrictionsFactoryUtil.eqProperty("this.resourcePrimKey", "versionArticle.resourcePrimKey")); Property workflowStatusProperty = PropertyFactoryUtil.forName("status"); versionArticleDynamicQuery.add( workflowStatusProperty.in(_journalArticleStagedModelDataHandler.getExportableStatuses())); Property versionProperty = PropertyFactoryUtil.forName("version"); dynamicQuery.add(versionProperty.eq(versionArticleDynamicQuery)); } }); exportActionableDynamicQuery.setStagedModelType(new StagedModelType(JournalArticle.class.getName())); return exportActionableDynamicQuery; }