是否可以使用“TypedQuery”作为JasperReport的DataSource?

时间:2013-05-13 16:15:42

标签: java jasper-reports

我正在使用iReport创建一个报告,该报告使用JPQL作为DataSource

但有一件事我似乎无法做到。如果我正在搜索的字段默认为Java,我只能使查询生效,就像这个例子一样:

SELECT p.name FROM Person p

在这种情况下,我将p.name映射到java.lang.String

<field name="name" class="java.lang.String">
    <fieldDescription><![CDATA[COLUMN_1]]></fieldDescription>
</field>

和瞧,这一切都有效。

但如果我这样做一个查询:

SELECT p FROM Person p

并将p映射到com.myproject.Person

<field name="person" class="com.myproject.Person">
    <fieldDescription><![CDATA[COLUMN_1]]></fieldDescription>
</field>

我得到这样的例外:

  

java.lang.ClassCastException:com.myproject.Person无法强制转换为[Ljava.lang.Object;

这告诉我,当我真的希望结果是Person的列表时,它不能<{>> java.lang.ObjectPerson数组

有什么方法可以运行第二个查询吗?我可以在哪里设置结果的类型?

我已经导出了我的项目的.jar文件,并将其添加到iReport的 classpath ,它可以正常工作,因为在报告中我发送了一个对象列表作为DataSource,我可以使用和引用我的课程很好,但是JPQL它给了我麻烦

有没有人这样做过?或者知道它是如何完成的?

0 个答案:

没有答案