2013-05-02 75 views
0

我正在尝试执行一个查询,对连锁结果执行like搜索。 在SQL它应该是这样的: WHERE firstname + ' ' + lastname LIKE '%namesearch%'jdo查询中的字符串连接

当JDO尝试这个我这样做:

Query q = pm.newQuery(User.class); 
Map<String, Object> args = new HashMap<String, Object>(); 
args.put("search", search); 
q.setFilter("(user.firstname + ' ' + user.lastname).indexOf(:search) >= 0"); 
q.executeWithMap(args); 

然而这样做的结果解析异常。

Portion of expression could not be parsed: (:search) >= 0

是否有可能做串联表达式搜索在JDO这样吗?

回答

0

我看到的问题是,你忘记打电话q.declareParameters("String search")

+0

对不起,不是这样。 'user.firstname.indexOf(:search)> = 0'正常工作 – jontro 2013-05-05 15:24:50