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

问个低级的return问题 关于hibernate
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里吗?
hibernate list

------解决方案--------------------
你list定义在try里,你return是在try外面,应该定义到try外面去。
你可以定义List list = null;
然后:
list = q.list();
最后return
------解决方案--------------------
先定义list呀,
大概可以这样

// 初始化事务
Transaction tx = null;
 //set a list
List list =new ArrayList();

然后

//取得查找到的数据的列表
//List list = q.list();这句改为下面
list = q.list();