我想创建一个复杂的自定义查找器并为其生成jspx文件。
我有一个名为Payment的类,由Spring 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文件?每当我尝试运行“finder add --finderName findPaymentStatistics”时,我收到一条错误消息:
动态查找程序无法匹配Payment.java中“findPaymentStatistics”查找定义的'findPaymentStatistics'标记
有什么想法吗?
由于
答案 0 :(得分: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
这应该会给你一个Roo可以创建的动态查找器列表,其中包括Payment对象的'startDate'和'endDate'参数。