日期:2014-05-17  浏览次数:20595 次

hibernate 有趣的问题 求解!
Java code

public class test {
    ActionContext actionContext = ActionContext.getContext();
    Map session = actionContext.getSession();//注意这里...........
    static Session s=HibernateSessionFactory.getSession();
    public List oneselect(int id) {
        // TODO Auto-generated method stub
        String hql = "select fw from TblFwxx as fw where fwid=?";
        Query q=s.createQuery(hql);
        q.setLong(0, id);
        List list = q.list();
        System.out.println(list);
        return list;
    }// 单信息
    public static void main(String[] args) {
        List list=new test().oneselect(81);
        System.out.println(list);
    }
}



Map session = actionContext.getSession();//注意这里...........
这一句加了运行就报空指针. 不加运行就是对的有结果!
我在想是不是session干扰了!
求解答!  
 加的主要意图是为了得到浏览器session对象!别说用SessionAware借口得到,我的实际用中是没用session注入的,即session用借口的不到!

------解决方案--------------------
按照你当前的测试,你是不可能得到HttpSession的,HttpSession是只有你通过浏览器请求以后,应用服务器才会根据你的请求socket来封装程会话,也就是H这个HttpSession,ActionContext是容器上下文的意思,不能用你这种方式测试。类在加载的时候,就被初始化,初始化就包Null异常,你的程序就终止,肯定下面的就不会有结果了