Grails Count By未返回正确的值

时间:2014-10-29 17:27:03

标签: sql hibernate grails count hql

我正在尝试使用Grails Count By返回数据库中的项目总数 我的查询是

def string  = "'%"+params.query+"%'"
def sqlquery ="SELECT COUNT(Status) FROM Document WHERE status= '"+params.Status+"' And doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);

这应该返回总计数但它返回0而不是724 我也试过像

这样的东西
total = Document.countByStatusAndDocNameLike(params.docStatus,string);

但是得到0而不是724

这很奇怪,因为这会返回正确的值

def sqlquery ="SELECT COUNT(Status) FROM Document WHERE doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);

1 个答案:

答案 0 :(得分:0)

所以,如果这两个:

def sqlquery ="SELECT COUNT(Status) FROM Document WHERE status= '"+params.Status+"' And doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);

total = Document.countByStatusAndDocNameLike(params.docStatus,string);

返回相同的东西(他们应该),但他们返回的计数是0,但是这个:

def sqlquery ="SELECT COUNT(Status) FROM Document WHERE doc_name LIKE "+string;
total = Document.executeQuery(sqlquery);

返回您期望的所有文档,然后我必须建议您期望的文档不具有params.Status中的状态。我建议打印出params.Status的值,并查看它是否匹配...确切地说......你预期的724文档中的值。请注意,最后一个查询中的COUNT(状态)不计算其中包含params.Status的那个(在查询中没有提到params.Status)......也可能是COUNT( *)。