1

Groovy に次のような 2 つのクラスがあるとします。

class Person {
  int id;
  String name;
}

class Item {
  int id;
  int price;
}

次の SQL を使用して、すべての人物の名前を一覧表示する JasperReport を簡単に作成できます。

SELECT name FROM Person

また、リストを作成するモデルを渡すのは簡単です。

def p = Person.withCriteria {
   eq('name','SomeGuy')
}
chain(controller:'jasper',action:'index',model:[data:p],params:params)

しかし、私がやりたいのは、次のクエリを使用することです。

SELECT name, (SELECT sum(i.price) FROM Item f WHERE f.id=p.id) as priceSum FROM Person p

そして今、これは私がどのように進むべきか分からない部分です: モデルを jasperReport に渡すにはどうすればよいですか? 私はちょうど使用することはできません

def p = Person.withCriteria {
   eq('name','SomeGuy')
}

その場合、priceSum 属性が欠落するためです。私がやりたいことは次のようなものです:

def l = ['name':'SomeGuy','priceSum':'5000']
chain(controller:'jasper',action:'index',model:[data:l],params:params)

しかし、これもうまくいきません。

 Message: Cannot get property 'name' on null object 
 Caused by: java.lang.NullPointerException: Cannot get property 'name' on null object 

これに似たものはありますか?

4

0 に答える 0