求教一个问题:小弟用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,没参数的没问题。不知道怎么回事?是否与缓存有关系呢?愿各位前辈不吝赐教!
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,没参数的没问题。不知道怎么回事?是否与缓存有关系呢?愿各位前辈不吝赐教!
解决方案 »
- 关于JSF Managed-Bean中注入spring bean初始化的问题
- 初学ibatis,编译出错看不懂
- 用jnative调用关联授权文件的dll,加载授权文件失败
- 用java如何调用shell文件并得到返回结果,最好能提供一个小例子
- spring aop
- 在Spring中如何重用相同的bean?
- java基于OpenSAML2.0开发web SSO
- 。。。。。50分急求解。。。。。。jboss jndi lookup 复杂类 问题。。。。。。。。。急。。。。。。
- jboss启动报错
- 求助,哪位有Informix的jdbc driver?
- ssh框架无法存入数据库
- java 如何调用 linux下的 。so文件 给我接口了 就是启动服务
get(Book.class,100)
Book book=(Book)this.getHibernateTemplate().get(Book.class, "402881e42cefae72012cefb8dfa00001");
你上面那样做不行是因为你的id是由自己分配的 而不是数据库的索引你这样做的话 你的ID就有业务含义 这样做实在是不妥啊 ,绑定的太死啦 。
getHibernateTemplate().find("from Book as bk where bk.id='100'");
getHibernateTemplate().find("from Book as bk where bk.id=?","100");
这两种写法,前者正常,后者结果返回null,这里的100只是一个数字代表,我实际开发用的是uuid,hibernate自动生成的,表里的id是没问题的
目前尚未解决此问题[我个人感觉是和两种find的加载模式有关系,只是不清楚问题出在具体哪里]
List list=this.getHibernateTemplate().find("from BookInfor as bk where bk.id=?","402881e62d4c40ff012d4c4363d80001"); 返回list的size为0
this.getHibernateTemplate().find("from BookInfor as bk where bk.name=?","zhangsan"); 返回list的size为1id为402881e62d4c40ff012d4c4363d80001和name为zhangsan是一条记录
也就是说返回null的问题只是出在了用id查询上,推测是id有问题
id我使用的是uuid
<id name="id" ><generator class="uuid"/></id> 数据库里id是自动生成的,设定了主键,这些没问题