日期:2014-05-17  浏览次数:20602 次

hibernate4 hql占位符问题
今天用hibernate4做设计的时候,用到了hql的占位符,从页面获取的占位符参数值是中文,一直不能获取数据库数据,把值换成数字又行了,急求大牛解答,非常感谢

代码:
public List<StorageEntryPO> QueryEntry(QueryEntryVO query_entryvo){
List<StorageEntryPO> result=new ArrayList();
hib=new HibernateService();
sf=hib.getSessionFactory();
session=sf.getCurrentSession();
Transaction tx=null;

try{
tx=session.beginTransaction();
Query query=session.createQuery("from StorageEntryPO as s where            s.storageno=:storageno");

query.setString("storageno", query_entryvo.getStorageno());
        result=query.list();
tx.commit();
System.out.println(result);
}catch(Exception e){
if(tx!=null){
tx.rollback();
}
e.printStackTrace();
}

return result;
}
Hibernate hql 占位符 中文

------解决方案--------------------
query.setString改为query.setEntity
------解决方案--------------------
你的StorageEntryPO的storageno类型和VO的型一致不?不一致你就需要转换了再传进去.或者查一下映射文件