를 I 당신이 원하는 결과가 될 코드를 여기에 붙이고 있습니다. 나는 컴파일하거나 실행하지 않습니다.
DynamicQuery dynamicQuery=DynamicQueryFactoryUtil.forClass(JournalArticle.class);
dynamicQuery.addOrder(OrderFactoryUtil.desc("createDate"));
dynamicQuery.setLimit(0, 4);
DynamicQuery subQuery=DynamicQueryFactoryUtil.forClass(JournalArticle.class);
subQuery.setProjection(ProjectionFactoryUtil.projectionList().add(ProjectionFactoryUtil.property("_id")).add(ProjectionFactoryUtil.max("version")));
subQuery.add(PropertyFactoryUtil.forName("structureId ").eq("structure-id"));
subQuery.add(PropertyFactoryUtil.forName("companyId").eq("10150"));
subQuery.add(PropertyFactoryUtil.forName("groupId").eq("10170"));
List<Long> ids=new ArrayList<Long>();
try {
List<Object[]> list= JournalArticleLocalServiceUtil.dynamicQuery(subQuery);
for(Object[] object:list){
//0th field would be _id
ids.add((Long)object[0]);
}
} catch (SystemException e) {
// TODO Auto-generated catch block
}
dynamicQuery.add(PropertyFactoryUtil.forName("_id").in(ids.toArray()));
try {
List<JournalArticle> journalArticles=JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery);
} catch (SystemException e) {
// TODO Auto-generated catch block
}
이 정보가 도움이되기를 바랍니다.
DynamicQuery를 사용하여 이러한 콤플렉스 하위 선택을 표현하는 직접적인 방법은 보이지 않지만, 맞는 경우 일부 수정을 통해 수행 할 수 있습니다. –