2013-11-09 4 views
0

웹 콘텐츠를 편집 할 때 liferay가 자동으로 기사의 새 버전을 만들고 특정 기사의 최신 버전을 얻고 싶습니다. 나는 다음과 같이 동적 쿼리를 사용 :Lifereay에서 DynamicQuery와 함께 Projection을 사용할 때 예외 6.1?

DynamicQuery query = DynamicQueryFactoryUtil.forClass(JournalArticle.class, PortletClassLoaderUtil.getClassLoader()); 

query.setProjection(ProjectionFactoryUtil.max("version")); 
List<JournalArticle> jList = (List<JournalArticle>)JournalArticleLocalServiceUtil.dynamicQuery(query); 

내가 구글에 검색 예고 ProjectionFactoryUtil.max("version") 많이 사용되었다. 하지만 내 경우 예외가 발생했습니다 :

"java.lang.Double cannot be cast to com.liferay.portlet.journal.model.JournalArticle" 

내가 뭔가를 잃어버린 물건이 있습니까?

답변

0

DynamicQuery에서 ProjectionFactoryUtil.max("version")을 사용하면 필드 '버전'의 최대 값이되는 double 값이 반환됩니다. JournalArticle에 double 형식의 값을 캐스팅하려고 시도하는 이유는이 예외에 직면 한 이유입니다.

HTH 모바일에서 전송되었습니다.

+0

알겠습니다. 나는 위 쿼리가 저널 아티클 객체의 목록을 반환 할 것이라고 오해하고 있습니다. 감사. – ipkiss

0

JournalArticle의 최신 버전을 얻으려는 의도는 다음과 같습니다. JournalArticleLocalServiceUtil에는 API 메소드 fetchLatestArticle (예 : 출판되지 않은 것보다 게시 된 기사를 선호하는 등 여러 가지 매개 변수 세트가 있습니다)이 있습니다. Liferay 5.x에서는 getLatestArticle이라고합니다.