2014-10-28 41 views
0

在由createQueryEntity创建的实体上调用.toString()似乎存在一个错误。如果您在查询中使用它。它会有一些垃圾字符串“tring”。与IEntity.toString()的错误?

IEntity queryEntity = (IEntity) GenerateQuery.createQueryEntity(Vendor.class); 
queryEntity.toString(); 

Calendar start = Calendar.getInstance(); 
start.add(Calendar.YEAR, -1); 

Vendor vendor = (Vendor) queryEntity ; 

return select($(vendor)) 
    .where($(vendor.getMetaData().getLastUpdatedTime()).gte(start)) 
    .where($(vendor.isActive()).eq(false)) 
    .skip(1).take(1000) 
    .generate(); 

这会导致类似于“select tring.tring。* from ...”这样的结果吗?其他人看过这个吗?

回答

0

终于搞明白了。显然你不能在调用select()之前调用createQueryEntity返回的queryEntity上的任何方法。这意味着toString()或((Vendor)queryEntity).isActive()不应该在select($(vendor))之前被调用。

解决方案是在调用这些方法之前首先存储select($(vendor))的结果。

调试时要小心,因为添加监视表达式也会调用toString()。