【问题标题】:Liferay exception while using ProjectionFactoryUtil使用 ProjectionFactoryUtil 时出现 Liferay 异常
【发布时间】:2014-08-08 08:08:20
【问题描述】:

我正在使用 ProjectionFactoryUtil 来获取特定的列 例如:我想从表 DETAIL_TABLE 中获取 ID 和名称

我正在使用动态查询

DynamicQuery dynQuery = DynamicQueryFactoryUtil.forClass(DetailTable.class);

ProjectionList projectionList = ProjectionFactoryUtil.projectionList();

projectionList.add(ProjectionFactoryUtil.property("ID"));
projectionList.add(ProjectionFactoryUtil.property("NAME"));

dynQuery.setProjection(projectionList);

之后我使用

检索查询
List<DetailTable> detailList = DetailTableLocalServiceUtil.dynamicQuery(dynQuery);

但是当我试图迭代它时,会在下面一行得到类转换异常

for(DetailTable dt : detailList){
}

例外是“Ljava.lang.Object;不能转换为 com.detail.model.DetailTable”

Service util 类返回相同的 DetailTable List ,我不知道为什么它给了我类转换异常

不使用投影时不会出现异常

【问题讨论】:

    标签: java liferay


    【解决方案1】:

    当您在DynamicQuery 中添加投影时,它会返回您对象类型的数组列表。

    在这里,您尝试使用List&lt;DetailTable&gt; 转换该结果,这就是它抛出异常的原因。

    改为使用List&lt;Object[]&gt;,然后根据其类型(db类型)转换数组项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 2015-02-05
      • 2014-08-06
      • 1970-01-01
      • 2011-09-15
      • 2016-11-08
      • 2011-08-11
      相关资源
      最近更新 更多