public List sub(Submenu submenu) { // 初始化事务
Transaction tx = null; // 实例化session
Session session = sessionFactory.getCurrentSession();
try {
//实例化事务
tx = session.getTransaction();
// 开始事务
tx.begin();
// 执行sql文 login
Query q = session.createQuery(Sql.SELECT_PAGEID);

//取得查找到的数据的列表
@SuppressWarnings("rawtypes")
List list = q.list();

// 判断是否存在用户
if (null != list && list.size() != 0) { session.flush();


// 事务关闭
tx.commit();
} catch (Exception e) {
e.printStackTrace();
//如果事务失败 回滚
if (tx != null && tx.isActive()) {
try {
// 回滚
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
}
}
return list;

}
我想return 遍历数据库的list(List list = q.list();这行)
但是我直接写return list; 说是list没有定义 要怎么办?  还有  我的这段代码能把hibernate查找的sql语句的结果 直接以list 存入 submenu BEAN里吗?
hibernatelist

解决方案 »

  1.   

    你list定义在try里,你return是在try外面,应该定义到try外面去。
    你可以定义List list = null;
    然后:
    list = q.list();
    最后return
      

  2.   

    先定义list呀,
    大概可以这样// 初始化事务
    Transaction tx = null;
     //set a list
    List list =new ArrayList();然后//取得查找到的数据的列表
    //List list = q.list();这句改为下面
    list = q.list();
      

  3.   

    试试List<?> list = null;
    list = q.list();