日期:2014-05-20  浏览次数:20777 次

getHibernateTemplate().get 查询返回null--求教!
求教一个问题:小弟用spring+hibernate整合开发 ,使用getHibernateTemplate进行查询时遇到问题,目前的情况是
getHibernateTemplate().save delelte update 这些都没有问题,但是
getHibernateTemplate().get(Book.class, "100");这个查询不报异常,但查询结果为null,数据库没问题,id为100的数据也存在,我将其改为getHibernateTemplate().find("from Book as bk where bk.id='100'"); 查询没问题,能查询来,然后
我又用getHibernateTemplate().find("from Book as bk where bk.id=?","100");查询也是null

也就是涉及参数的查询都为null,没参数的没问题。不知道怎么回事?是否与缓存有关系呢?愿各位前辈不吝赐教!

------解决方案--------------------
把引号去掉看看
get(Book.class,100)
------解决方案--------------------
getHibernateTemplate().get(Book.class, new Long(100));
------解决方案--------------------
String param = "100";

getHibernateTemplate().find("from Book as bk where bk.id=?", param);
------解决方案--------------------
你用session来做 肯定没问题
------解决方案--------------------
楼上的方法我也试过了,这个是不行的,getHibernateTemplate().find("from Book as bk where bk.id='100'"); 这样写可以 呵呵 奇怪啊 

你这样肯定是可以的啊 
你上面那样做不行是因为你的id是由自己分配的 而不是数据库的索引

你这样做的话 你的ID就有业务含义 这样做实在是不妥啊 ,绑定的太死啦 。。。。
------解决方案--------------------
数据库字段名为id?