public List<Personinfo> findAllInfoByRootId(String cid, String rootId) {
// TODO Auto-generated method stub
System.out.println(cid+""+rootId);
List<Personinfo> perList = new ArrayList<Personinfo>();
SessionFactory fac = HibernateSessionFactory.getSessionFactory();
Session session = fac.openSession();
String hql = "select * from Personinfo o where o.pid =? and o.rootId=?";
// String hql = "select * from Personinfo o where o.pid ='"+cid+"' and o.rootId='"+rootId+"'";
SQLQuery cri = session.createSQLQuery(hql).addEntity(Personinfo.class);
cri.setString(0, cid);
cri.setString(1, rootId);
perList = (List<Personinfo>)cri.list();
if(perList==null){
return null;
}
for (int i = 0; i < perList.size(); i++) {
Personinfo p = perList.get(i);
List<Personinfo> children = findAllInfoByRootId(p.getCid(),rootId);
p.setChildren(new HashSet<Personinfo>(children));
}
return perList;
}这个是我的方法,现在问题是我用sqlquery如果where(cid,rootId)条件有中文或者英文的话就报错,如果是数字就没问题,数据库的字段都是varchar2()的(oracle数据库),我拼接sql和注入参数都试了,求教了.
解决方案 »
- Tomcat6 他大爷...
- 关于数据库里面的varbinary(8000)字段的问题?
- 大家看下呀
- 面试大受挫折,求Java面试题大汇总(最少200求),附上答案者高分。应届毕业生应该注意那样东西,请大侠们指点,谢谢
- 初次接触hibernate不解!
- java中如何使用老板键
- 如何让一个页面(JSP)能得实时收到信息.(不用不断刷新的情况下)
- 关于部署的一个很菜的问题有那位高手帮看一下谢了!
- 为什么每次修改javabean都得重起Tomcat才能生效!
- 高薪急聘JAVA高级程序员
- 报了这个错是什么意思,求解。Jdbc~
- 急!!关于Sevlet不能接受request.getAttribute()
它的sql打印出来了,我把sql放到数据库执行没问题,可以查询出数据
只是它报错的信息为:
java.sql.SQLException: 无法转换为内部表示
Personinfo
hbm.xml
类型是否匹配
return null;
}
这个判断最好写成if(perList.isEmpty()){
return null;
}