本人用S2SH做一个小项目,现在想查表中的部分字段
于是在Service中这么写:
public List findFilmInfoByName(String filmName) {
Session session = filmDAO.getMySession();
String hql = "select film.date,film.hall from Film as film where film.name = ?";
List filmInfoList = null;
try {
Query query = session.createQuery(hql);
query.setString(0, filmName);
filmInfoList = query.list();
System.out.println();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
session.close();
}
return filmInfoList;
}
}然后在Action中调用这个函数,接着问题就来了。函数返回的是一个List,里面是Object对象,我想把Object强制转换成Film对象,但是不行,加上相应的构造函数也不行。
于是在Service中这么写:
public List findFilmInfoByName(String filmName) {
Session session = filmDAO.getMySession();
String hql = "select film.date,film.hall from Film as film where film.name = ?";
List filmInfoList = null;
try {
Query query = session.createQuery(hql);
query.setString(0, filmName);
filmInfoList = query.list();
System.out.println();
} catch (HibernateException e) {
e.printStackTrace();
} finally {
session.close();
}
return filmInfoList;
}
}然后在Action中调用这个函数,接着问题就来了。函数返回的是一个List,里面是Object对象,我想把Object强制转换成Film对象,但是不行,加上相应的构造函数也不行。
select film.date,film.hall from Film as film where film.name = ? 就不用这么写了嘛
from Film film where film.name = ?
List<Film> filmInfoList = null;
这样改,再试试
再说,你可以干脆取出一个Film来,然后再程序中选出getDate(),getHall()。我觉得这样也不失为一种解决办法
这样读取出来的数据会自动填充到实体bean里面,如果不用addEntity方法的话,默认是object数组
用" from Film where..."这样
在用get方法不是蛮好的?
-------------------
你这样取出来的应该是个数组 你要这么写
String filedate = Object[0];
String film.hall = Objcct[1];
-----------
String类型如果不对就用Film类型试试。 总之 ,你这么取,出来的是个数组,所以直接转成Film类型肯定不对。
然后加断点看下,具体哪行报的错?
返回来的对象怎么会是List<Film>呢?