用了hibernate出错 。 原来是 延迟初始化(延迟加载)(Lazy Initialization)出错,后来被我不小心改掉了,就成了这个样子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为何是:String strQry = "from User";不是这样的吗:String strQry = "select * form User"; 建议用Object[] obj = (Object[]) it.next();,你确定取出的数据可以直接cast成(User)吗。只能看出这一点。btw:用session1.beginTransaction同步吗 为何是:String strQry = "from User";不是这样的吗:String strQry = "select * form User";---直接"from User"是没问题的,这是HQL的语法; 如果把代码改造直接写在jsp中,一切正常:-----<%try { Session session1 = HibernateSessionFactory.currentSession(); Transaction tx = session1.beginTransaction(); String strQry="from User"; Query query = session1.createQuery(strQry ); for (Iterator it = query.iterate(); it.hasNext();) { User user1 = (User) it.next(); out.println("user: "+user1.getUser_id()+"::" + user1.getUser_name() +",password:"+user1.getUser_pass()+ "<br>"); } tx.commit(); HibernateSessionFactory.closeSession(); } catch (HibernateException e) { e.toString(); }%>-----这是为何? HibernateSessionFactory.closeSession();放在地方啦------manzhi(学习)老兄,有话慢慢说,是放错地方了吗?该放在哪? 般放在finall里HibernateSessionFactory.closeSession();users[i] = (User) it.next();//这行出错!]返回的值填充数组?没这样的写法吧.你的hql,就是返User所有实例,用就行了.还有users[i] 是个null引用,而且while 里也不存在迭代数组,i++只不过是i值递补增.你的程序根本编译不了,所以出现NullPointerException.事实上你这里用session.iterator()就可以啦说错了不要怪:)要不这样试下public User[] getUsers() { try { Session session1 = HibernateSessionFactory.currentSession(); Transaction tx = session1.beginTransaction(); String strQry = "from User"; Query query = session1.createQuery(strQry); return (User[]) query.list().toArray(new User[query.list().size()]); 般放在finall里HibernateSessionFactory.closeSession();users[i] = (User) it.next();//这行出错!]返回的值填充数组?没这样的写法吧.你的hql,就是返User所有实例。这里的users[i] 是个null引用,而且while 里也不存在迭代数组,i++只不过是i值递增.你的程序根本编译不了,所以出现NullPointerException.事实上你这里用session.iterator()就可以啦说错了不要怪:)要不这样试下public User[] getUsers() { try { Session session1 = HibernateSessionFactory.currentSession(); Transaction tx = session1.beginTransaction(); String strQry = "from User"; Query query = session1.createQuery(strQry); return (User[]) query.list().toArray(new User[query.list().size()]); java 批量导入失败怎么处理 用get方式提交如何取到某个元素的值 求高手来回答 金融软件开发和对日外包,哪个发展前景更好? 报错 java.lang.LinkageError 老紫竹,谢谢您的回复,还有几个细节问题想请教,请不吝赐教,万分感谢 AXIS2报文头设置 struts2中通配符与默认action冲突! 如何配制J2EE的开发环境? java mongodb 查询 初学者的疑惑(搞定马上结贴) tomcat中结果集的怪异问题(欢迎讨论)
不是这样的吗:String strQry = "select * form User";
btw:用session1.beginTransaction同步吗
不是这样的吗:String strQry = "select * form User";
---
直接"from User"是没问题的,这是HQL的语法;
-----
<%
try {
Session session1 = HibernateSessionFactory.currentSession();
Transaction tx = session1.beginTransaction();
String strQry="from User";
Query query = session1.createQuery(strQry );
for (Iterator it = query.iterate(); it.hasNext();) {
User user1 = (User) it.next();
out.println("user: "+user1.getUser_id()+"::" + user1.getUser_name() +",password:"+user1.getUser_pass()+ "<br>");
}
tx.commit();
HibernateSessionFactory.closeSession();
} catch (HibernateException e) {
e.toString();
}
%>
-----
这是为何?
------
manzhi(学习)老兄,有话慢慢说,
是放错地方了吗?该放在哪?
HibernateSessionFactory.closeSession();users[i] = (User) it.next();//这行出错!]
返回的值填充数组?没这样的写法吧.
你的hql,就是返User所有实例,用就行了.还有users[i] 是个null引用,而且while 里也不存在迭代数组,i++只不过是i值递补增.你的程序根本编译不了,所以出现NullPointerException.
事实上你这里用session.iterator()就可以啦说错了不要怪:)
要不这样试下
public User[] getUsers() {
try {
Session session1 = HibernateSessionFactory.currentSession();
Transaction tx = session1.beginTransaction();
String strQry = "from User";
Query query = session1.createQuery(strQry);
return (User[]) query.list().toArray(new User[query.list().size()]);
HibernateSessionFactory.closeSession();users[i] = (User) it.next();//这行出错!]
返回的值填充数组?没这样的写法吧.
你的hql,就是返User所有实例。这里的users[i] 是个null引用,而且while 里也不存在迭代数组,i++只不过是i值递增.你的程序根本编译不了,所以出现NullPointerException.事实上你这里用session.iterator()就可以啦说错了不要怪:)
要不这样试下
public User[] getUsers() {
try {
Session session1 = HibernateSessionFactory.currentSession();
Transaction tx = session1.beginTransaction();
String strQry = "from User";
Query query = session1.createQuery(strQry);
return (User[]) query.list().toArray(new User[query.list().size()]);