Example usage for com.liferay.portal.kernel.dao.orm ProjectionFactoryUtil alias

List of usage examples for com.liferay.portal.kernel.dao.orm ProjectionFactoryUtil alias

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.dao.orm ProjectionFactoryUtil alias.

Prototype

public static Projection alias(Projection projection, String alias) 

Source Link

Usage

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);
        }
    }
}