2012-04-28 2 views
1

команда «finder list» в Spring-roo, я добавил параметр «фильтр», чтобы сократить число номеров динамического искателя. Но это не сработало для меня, оно перечислило искателей, которые содержат «имя» ИЛИ «цена» для меня.Spring-roo 1.2.1 не может фильтровать список поиска?

finder list --depth 2 --filter name,price 

Может ли кто-нибудь сказать мне, как отфильтровать их, поскольку содержит только «имя» и «цену»? т.е. findBooksByNameNotEqualsAndPrice (имя String, Float цена) (название String, цена Float) findBooksByNameEqualsAndPrice ......

ответ

1

Я проверил источник РОО, и это не выглядит как нет никакого способа, чтобы получить и, как поведение и только логика на основе OR поддерживается надстройкой finder.

Просмотреть поисковую систему addon src здесь: https://github.com/SpringSource/spring-roo/blob/master/addon-finder/src/main/java/org/springframework/roo/addon/finder/FinderCommands.java#L71.

или исходный код здесь:

final SortedSet<String> result = new TreeSet<String>(); 
for (final String finder : finders) { 
    required: for (final String requiredEntry : requiredEntries) { 
     if (finder.toLowerCase().contains(requiredEntry)) { 
      result.add(finder); 
      break required; 
     } 
    } 
} 
return result; 

Похоже, операция списка добавляет фильтр к списку результатов каждый раз, когда он находит любую нужную запись в искателе ниже имя случая.

Единственный способ, с помощью которого я могу фильтровать список, - это скопировать результат поиска и запустить на нем внешнюю утилиту grep-like. В противном случае вы можете попробовать соответствие столько названия FINDERS, как это возможно: что-то вроде EqualsAndPrice (имя Строка, например ATER все простой Java используется String.contains метод

+0

Хорошо, это может быть единственный способ. Благодарим вас за это. – JerryCai

1

В моем опыте я заметил.. что проще непосредственно связать имя искателя в аннотации вашего объекта: @RooJpaActiveRecord (finders = {"findTubesByVectorOrResearcher", "findTubesByBox"}) Вы можете смешивать атрибуты сущности, «И», «Или», «Как», «Между» и т. Д.

Для вашего вопроса, я думаю, что grep - это простое решение.

Смежные вопросы