2009-05-06 4 views
2

これで、iReportが起動して実行されているので、ここでHQLクエリを実行して、オブジェクトをフェッチしてレポートインスペクタの[フィールド]セクションに配置できます。iReportとHibernate ...

実際のデータ値の「レベル」は1つだけ返され、エンティティオブジェクトは返されないように、すべてのクエリを平坦化する必要がありますか?私はむしろオブジェクトを返すだけで、toString()をレポートに表示させたい、そうでなければ、HQLはとても複雑に見えます。

答えて

2

私はあなたがオブジェクトを使用できると思います。たとえば、フィールドの父親がいる場合は、 "father.getFather()。getFather()。getName()"を使用して、現在の行の祖父の名前を取得できます。注意しなければならないことの1つはローディングタイプです。 EAGER(LAZYでない)でなければなりません。そうでなければ、データは正しく読み込まれません。

EDIT: ジョシュア、私たちはテキストフィールド内で好きなJavaコードに置くことができます。

<textFieldExpression class="java.lang.String"><![CDATA[$P{samples}.size() < 2 ? "" : ((br.com.laboroil.report.bean.Sample) $P{samples}.get(1)).getCode()]]></textFieldExpression> 
+0

しかし、私はのgetNameを行うことはできませんので、私はまだ、そこでのgetName()は実際の名前を取得することを必要とします()iReportから、私はhqlクエリでそれを行う必要があります。 私のデータは非常に深くオブジェクトに埋め込まれています... –

+0

でもgetName()を実行できます。 –

関連する問題