2011-01-29 7 views
0

私は複雑なカスタムファインダーを作成し、そのためのjspxファイルを生成したいと考えています。Spring ROOで複雑な(カスタム)finderのjspxとcontrollersファイルを生成するには?

私は(実際のコードは、物事を簡単にするために変更されたことに注意してください)、スプリングROOによって生成された支払いと呼ばれるクラスを持っている:

package com.mystuff.orm; 
... 
@RooJavaBean 
@RooToString 
public class Payment { 

    private Double someValue; 
    ... 

    // My Custom finder!! 
    public static TypedQuery<PaymentSummary> findPaymentStatistics(Calendar fromDate, Calendar toDate) { 
    if (fromDate == null || toDate == null) 
     throw new IllegalArgumentException("Date period argument is required"); 
    EntityManager em = Payment.entityManager(); 
    TypedQuery<PaymentSummary> q = em.createQuery("select new com.mystuff.data.PaymentSummary(sum(o.someValue)) from Payment o where o.startDate >= :startDate and o.endDate <= :endDate", PaymentSummary.class); 
    q.setParameter("startDate", fromDate); 
    q.setParameter("endDate", toDate); 
    return q; 
    } 

} 

は、どのように私はこのクエリ用のファイルをJSPX生成することができますか?私が実行しようとするたびに、「ファインダーは--finderName findPaymentStatisticsを追加」私は、エラーメッセージが表示されます。

ダイナミックファインダーは、任意のアイデアPayment.java

の「findPaymentStatistics」ファインダーの定義の「findPaymentStatistics」トークンと一致することができませんか?

おかげ

答えて

1

は、上記のあなたの方法は、手で実装されている「findPaymentStatistics」ですか?もしそうなら、Roo won't be able to generate the front end for it。しかし、Rooは、ファインダコード自体を作成していればフロントエンドを生成します。 Rooは、手作業でコーディングしたものと同様のファインダを生成することができます。これを実行してみましょう:

roo> finder list --class com.mystuff.orm.Payment --filter start,end 

あなたに「たstartDate」と支払対象の「endDateに」パラメータを含むRooのが作成できるダイナミックファインダのリストを与える必要があること。