Я хочу выполнить запрос к базе данных MySQL с псевдонимом в liferay 7.1, поэтому я предпочитаю способ динамического запроса
мой запрос:
SELECT id_, groupId,articleId, urlTitle ИЗ LRCXCHTASK.JournalArticle, где version = (выберите max (ja.version) из LRCXCHTASK.JournalArticle ja, где ja.articleId = LRCXCHTASK.JournalArticle.articleId);
для этого сделано:
DynamicQuery articleSubDynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, "articleSub")
.add(PropertyFactoryUtil.forName("articleSub.articleId").eqProperty("articleParent.articleId"))
.setProjection(ProjectionFactoryUtil.max("articleSub.version"));
DynamicQuery articleParentDynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, "articleParent")
.add(PropertyFactoryUtil.forName("version").eq(articleSubDynamicQuery))
.setProjection(ProjectionFactoryUtil.property("id"))
.setProjection(ProjectionFactoryUtil.property("articleId"))
.setProjection(ProjectionFactoryUtil.property("groupId"))
.setProjection(ProjectionFactoryUtil.property("urlTitle"));
List<Object[]> journalArticleIdsList = JournalArticleLocalServiceUtil.dynamicQuery(articleParentDynamicQuery);
Я хочу список, но он выдает исключение classNotFound JournalArticleImpl
Если я использую
DynamicQuery articleSubDynamicQuery2 = JournalArticleLocalServiceUtil.dynamicQuery ();
нет проблем с загрузчиком классов, но с помощью этого метода я не могу установить псевдоним для таблицы, которая является обязательной для выполнения моего запроса