List of usage examples for com.liferay.portal.kernel.dao.orm ProjectionFactoryUtil alias
public static Projection alias(Projection projection, String alias)
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();//from w w w .j a v a 2 s .co 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; }
From source file:jorgediazest.indexchecker.model.JournalArticle.java
License:Open Source License
public void addMissingJournalArticles(String[] attributes, Criterion filter, Criterion filterStatus, Map<Long, Data> dataMap) throws Exception { DynamicQuery query = service.newDynamicQuery(); List<String> validAttributes = new ArrayList<String>(); ProjectionList projectionList = this.getPropertyProjection(attributes, validAttributes); query.setProjection(ProjectionFactoryUtil.distinct(projectionList)); query.add(filter);/*ww w.j av a2 s . c om*/ /* TODO DynamicQuery articleVersionDynamicQuery = ModelUtil.newDynamicQuery( com.liferay.portlet.journal.model.JournalArticle.class, "articleVersion"); Fin TODO */ DynamicQuery articleVersionDynamicQuery = ModelUtil.newDynamicQuery(null, "articleVersion"); articleVersionDynamicQuery.setProjection(ProjectionFactoryUtil .alias(ProjectionFactoryUtil.max("articleVersion.version"), "articleVersion.version")); // We need to use the "this" default alias to make sure the database // engine handles this subquery as a correlated subquery articleVersionDynamicQuery .add(RestrictionsFactoryUtil.eqProperty("this.resourcePrimKey", "articleVersion.resourcePrimKey")); articleVersionDynamicQuery.add(filterStatus); query.add(getProperty("version").eq(articleVersionDynamicQuery)); query.add(filterStatus); @SuppressWarnings("unchecked") List<Object[]> results = (List<Object[]>) service.executeDynamicQuery(query); String[] validAttributesArr = validAttributes.toArray(new String[validAttributes.size()]); for (Object[] result : results) { Data data = createDataObject(validAttributesArr, result); if (!dataMap.containsKey(data.getResourcePrimKey())) { dataMap.put(data.getResourcePrimKey(), data); } } }