首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

HibernateTemplate执行自定义SQL不知道错哪了

2013-12-26 
HibernateTemplate执行自定义SQL不知道哪里错了import java.sql.SQLExceptionimport java.util.Listimpo

HibernateTemplate执行自定义SQL不知道哪里错了
import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.classic.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.laoer.bbscs.bean.UserInfo;

public class UserInformation extends HibernateDaoSupport {

public String getUserandpassword() {

HibernateTemplate tmpl = this.getHibernateTemplate();

List<UserInfo> list = tmpl
.execute(new HibernateCallback<List<UserInfo>>() {
@Override
public List<UserInfo> doInHibernate(Session session)
throws HibernateException, SQLException {
SQLQuery query = session
.createSQLQuery("select * from user");

List results = query.list();
return (List<UserInfo>) results;
}

});

return list.toString();
}

}

============
以上代码Eclipse老提示List<UserInfo> list = tmpl
.execute(new HibernateCallback<List<UserInfo>>() {
这里有问题,高人知道是什么原因吗?
[解决办法]
(List<UserInfo>) results;  
这里 你的results查出来是一个list里放的map,List<Map> 的对象强转成List<UserInfo> 。

1,你可以返回值改成List<Map>。


2,你也可以修改你的sql语句 ,
SQLQuery query = session
.createSQLQuery("select {u.*} from user");
query.addEntity("u",UserInfo.class);
return query.list();



[解决办法]
SQL这里的user 应该是表名 而不是映射的类名。
[解决办法]

引用:
我改成这样还是报错:
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.classic.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.laoer.bbscs.bean.UserInfo;

public class UserInformation extends HibernateDaoSupport {

public String getUserandpassword() {

HibernateTemplate tmpl = this.getHibernateTemplate();

List<UserInfo> list = new ArrayList();
list = (List<UserInfo>) tmpl
.execute(new HibernateCallback<List<UserInfo>>() {

public Object doInHibernate(Session session)
throws HibernateException, SQLException {
SQLQuery query = session
.createSQLQuery("select * from user");

return (List<UserInfo>) query.list();
}

});

return list.toString();
}
}


你好像傻 这样改
你也可以修改你的sql语句 ,
SQLQuery query = session
.createSQLQuery("select {u.*} from user");
query.addEntity("u",UserInfo.class);
return query.list();

[解决办法]
把异常贴出来

热点排行