我检查了 Roo 的源代码,看起来没有办法获得类似 AND 的行为,finder 插件只支持基于 OR 的逻辑。
在此处查看 finder 插件 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;
看起来列表操作每次在查找器小写名称中找到任何必需的条目时都会向结果列表添加一个过滤器。
我能想到的过滤列表的唯一方法是复制finder list命令的输出并在其上运行类似 grep 的外部实用程序。否则,您可以尝试匹配尽可能多的查找器名称:例如EqualsAndPrice(String name 之类的东西。Ater all a plain java String.contains method is used.