Playframework 把喜欢和喜欢结合在一起

Playframework 把喜欢和喜欢结合在一起,playframework,orm,ebean,Playframework,Orm,Ebean,给出一个单词列表和一个水果类,让我们说: List<String> wordList = new ArrayList<String>(Arrays.asList("App", "banan", "mang", "kiwi")); 在这种情况下: List<Fruit> matchedFruitList = Fruit.find.where().in("name", wordList).findList(); List matchedFruitList=Fr

给出一个单词列表和一个水果类,让我们说:

List<String> wordList = new ArrayList<String>(Arrays.asList("App", "banan", "mang", "kiwi"));
在这种情况下:

List<Fruit> matchedFruitList = Fruit.find.where().in("name", wordList).findList();
List matchedFruitList=Fruit.find.where().in(“name”,wordList.findList();
现在我需要的是做一个类似的手术,结合手术


有没有一种方法可以用ebeanorm来实现这一点?

似乎您需要对每个单词使用
条件并执行like

ExpressionList<Fruit> scope = Fruit.find.where();

for (int i = 0; i < wordList.size(); i++) {
    scope = scope.or().like("name", "%" + wordList.get(i) + "%");
}

List<Fruit> matchedFruitList = scope.findList();
ExpressionList scope=Fruit.find.where();
对于(int i=0;i

字表
不是很大时就可以了。如果是,我认为您应该使用RawSql和特定于数据库的语法来执行查询。

似乎您需要对每个单词使用
条件并执行类似操作

ExpressionList<Fruit> scope = Fruit.find.where();

for (int i = 0; i < wordList.size(); i++) {
    scope = scope.or().like("name", "%" + wordList.get(i) + "%");
}

List<Fruit> matchedFruitList = scope.findList();
ExpressionList scope=Fruit.find.where();
对于(int i=0;i

字表
不是很大时就可以了。如果是,我认为您应该使用RawSql和特定于数据库的语法来执行查询。

但是like只适用于第一个元素,我想在单词列表的所有元素中执行like操作。但是like只适用于第一个元素,我想在单词列表的所有元素中执行like操作。