2
Query qry = session.createQuery("From RegistrationBean where ? = ?");
qry.setString(0,searchCriteria);
qry.setString(1,searchField);
searchList =(ArrayList<RegistrationBean>) qry.list();

RegistrationBean实体类有userName, address, age字段..我想userName, address使用上面的单个查询通过搜索条件等搜索用户...但是即使用户存在,查询也会返回零结果..

有什么问题?

4

2 回答 2

1

两个参数都设置为0位置,第二个不设置。位置参数应按顺序设置。

qry.setParameter(0,searchCriteria);
qry.setParameter(1,searchField);

但是字段名称应该通过以下方式

String queryString = "from RegistrationBean as model where model." + propertyName   + "= ?";
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, value);
return queryObject.list();
于 2012-11-26T09:03:19.433 回答
0

尝试以下方式:

Query qry = session.createQuery("select * from RegistrationBean where :searchCrit = :searchValue");
qry.setString(":searchCrit",searchCriteria);
qry.setString(":searchValue",searchField);
searchList =(ArrayList<RegistrationBean>) qry.list();

像这样使用它而不是设置索引更合适(您的问题是您将两者都设置为 0),因为如果您更改查询中的某些内容,您可能需要在之后更改您的设置器。

于 2012-11-26T09:03:11.153 回答