我有一个名为'Profile'的实体,它有一个名为'keySkills'的属性为List的属性。
如果'keySkills'具有[Java,C,C ++,WEB TECHNOLOGIES]等值,我该如何搜索实体 当搜索条件只是WEB?以下查询过滤器不起作用,因为输入'WEB'与列表中的'WEB TECHNOLOGIES'值不匹配。
ArrayList criteria=new ArrayList();
criteria.add("WEB");
q.addFilter("keySkills",FilterOperator.IN, criteria);
由于 马
答案 0 :(得分:-1)
首先,您不能使用ArrayList作为搜索参数。它应该是:
q.addFilter("keySkills",FilterOperator.IN, "WEB");
其次,您无法使用IN运算符执行您所描述的操作。它必须完全匹配一个值,否则它将不返回任何结果。
您可以使用Search API进行此类搜索。
答案 1 :(得分:-1)
您可以使用普通等于运算符来检查多值字段中单个值的匹配。