Как создать файлы jspx и контроллеров для сложных (пользовательских) искателей в Spring ROO? - PullRequest
0 голосов
/ 30 января 2011

Я хочу создать сложный пользовательский искатель и сгенерировать для него файл 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", я получаю сообщение об ошибке:

Динамический искатель не может сопоставить токен 'findPaymentStatistics' из определения искателя 'findPaymentStatistics' в Payment.java

Есть идеи?

Спасибо

1 Ответ

1 голос
/ 23 февраля 2011

Является ли 'findPaymentStatistics' выше, метод, который вы реализовали вручную?Если это так, то Roo не сможет сгенерировать внешний интерфейс для него .Однако Roo сгенерирует внешний интерфейс, если он у вас есть, и создайте сам код поиска.Roo должен иметь возможность генерировать подобный искатель тот, который вы кодировали вручную.Попробуйте запустить это:

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

Это должно дать вам список динамических искателей, которые может создать Roo, которые включают параметры startDate и endDate объекта Payment.

...