Hibernate配置文件GameInfo.hbm.xml
[code="xml"]
[/code]
读取方法
[code="java"]
public Object getRecordById(final Class object, final long id) {
List list = (List) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(object);
criteria.add(Expression.eq("id", id));
return criteria.list();
}
});
if (list.size() == 0)
return null;
return list.get(0);
}
[/code]
显示
[code="java"]
long id = Long.valueOf(request.getParameter("id"));
GameInfo gameInfo = super.getAdminServiceInter().getGameById(id);
[color=red]byte[] b = gameInfo.getPictureMain();[/color][b]//在这里有异常java.lang.NullPointerException
//但是我在控制台下面就能把图片输出出来,很郁闷[/b]
try {
response.setContentType("blob/gif");
OutputStream output = response.getOutputStream();
output.write(b);
output.flush();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
[/code]
你的意思是把byte[] b输出来吗?你在gameInfo.getPictureMain();都抛java.lang.NullPointerException了, 你怎么能输出来呢?按你抛异常的位置, 应该是gameInfo为null, 在楼主的读取方法中, 既然是根据id来查, 不是只用session.get(object, id)就可以了么, 怎么还用list, 难道楼主的id不是用来作主键的???