I want to execute a query on MySQL database which has alias in it in liferay 7.1 so i prefer a way of dynamicquery
my query:
SELECT id_, groupId, articleId, urlTitle FROM LRCXCHTASK.JournalArticle where version= (select max(ja.version) from LRCXCHTASK.JournalArticle ja where ja.articleId = LRCXCHTASK.JournalArticle.articleId );
for this i have done code :
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);
I want list, but it throws classNotFound JournalArticleImpl exception
If i use
DynamicQuery articleSubDynamicQuery2=JournalArticleLocalServiceUtil.dynamicQuery();
there is no classloader issues but using this method i can not set alias on table which is mandatory to execute my query