报错提示Hibernate: select bulletin0_.id as x0_0_ from BULLETIN bulletin0_
java.lang.ClassCastException
at meis.tag.Bulletin_tag.doAfterBody(Bulletin_tag.java:48)
at jsp_servlet.__index._jspService(__index.java:202)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm代码 Query query=session.createQuery("select b.id from meis.hibernate.Bulletin as b");
java.util.List list=query.list();
result.append("<TABLE width=\"97%\" border=\"0\" cellspacing=\"6\" cellpadding=\"0\"><tr><td>dfdsfsdf"+list.size()+"</td></tr>");
Iterator iter = list.iterator();
while (iter.hasNext())
{
.....
}
/*
*/
映射类文件
package meis.hibernate;public class Bulletin {
//发布日期
private String id; private String issuedate;
private String title;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getIssuedate()
{
return issuedate;
}
public void setIssuedate(String issuedate)
{
this.issuedate = issuedate;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}}配置文件<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="meis.hibernate.Bulletin" table="BULLETIN">
<id name="id">
<generator class="assigned" />
</id>
<property name="issuedate" />
<property name="title" />
</class> </hibernate-mapping>
java.lang.ClassCastException
at meis.tag.Bulletin_tag.doAfterBody(Bulletin_tag.java:48)
at jsp_servlet.__index._jspService(__index.java:202)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm代码 Query query=session.createQuery("select b.id from meis.hibernate.Bulletin as b");
java.util.List list=query.list();
result.append("<TABLE width=\"97%\" border=\"0\" cellspacing=\"6\" cellpadding=\"0\"><tr><td>dfdsfsdf"+list.size()+"</td></tr>");
Iterator iter = list.iterator();
while (iter.hasNext())
{
.....
}
/*
*/
映射类文件
package meis.hibernate;public class Bulletin {
//发布日期
private String id; private String issuedate;
private String title;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getIssuedate()
{
return issuedate;
}
public void setIssuedate(String issuedate)
{
this.issuedate = issuedate;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}}配置文件<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="meis.hibernate.Bulletin" table="BULLETIN">
<id name="id">
<generator class="assigned" />
</id>
<property name="issuedate" />
<property name="title" />
</class> </hibernate-mapping>
解决方案 »
- getElementsByTagName 不能使用与struts标签吗
- 没有开发工具,建web工程,一直有错误,请高手指点
- 请问 DNS,已经折腾了几天,现在网站打不开了.紧急求助
- 超级大奖等你来拿:
- 单击这一行,让这一行的复选框选中,怎么做
- iReport问题:用JasperReport怎么设置背景色?
- eclipse,项目重命名的问题
- 急!急!急!打印图片的问题
- 处理完一条记录后,再次提交请求、Servlet响应的时候却出现空白页面,但是过几分钟后恢复正常,哪里有问题???
- struts的validation framework问题
- 关于在Struts框架的Action类中得到资源文件值的问题????
- 聊天室注销(头痛问题)
Query query=session.createQuery("select bull from Bulletin as bull"); Hibernate: select bulletin0_.id as id, bulletin0_.issuedate as issuedate, bullet
in0_.title as title from BULLETIN bulletin0_
只要加上字段,如这样,就报错了
Query query=session.createQuery("select bull.id from Bulletin as bull"); 报错如下
Hibernate: select bulletin0_.id as x0_0_ from BULLETIN bulletin0_
java.lang.ClassCastException
at meis.tag.Bulletin_tag.doAfterBody(Bulletin_tag.java:48)
at jsp_servlet.__index._jspService(__index.java:202)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
{
.....
}
把其中的内容发上来
{
result.append("<TR>");
meis.hibernate.Bulletin bulletin=(meis.hibernate.Bulletin)iter.next();
result.append("<TD width=\"100%\" height=\"21\">");
result.append("<span class=\"style8\"><img src=\"pic/bugle.gif\" width=\"11\" height=\"11\"><a href=\"#\">"+bulletin.getTitle()+"</a></span>");
result.append("</TD>");
result.append("</TR>");
}
刚才我在那个贴子中不是说了吗?
ava.util.List list=query.list(); 中返回的不是Bulletin对象。所以才错了
一会帮你解决吧
转型错误
一。
Query query=session.createQuery("from Bulletin");
java.util.List list=query.list();result.append(" <TABLE width=\"97%\" border=\"0\" cellspacing=\"6\" cellpadding=\"0\" > <tr > <td >dfdsfsdf"+list.size()+" </td > </tr >");Iterator iter = list.iterator();while (iter.hasNext())
{
result.append(" <TR >");
meis.hibernate.Bulletin bulletin=(meis.hibernate.Bulletin)iter.next();
result.append(" <TD width=\"100%\" height=\"21\" >");
result.append(" <span class=\"style8\" > <img src=\"pic/bugle.gif\" width=\"11\" height=\"11\" > <a href=\"#\" >"+bulletin.getTitle()+" </a > </span >");
result.append(" </TD >");
result.append(" </TR >");
}
二、Query query=session.createQuery("select b.title from Bulletin as b");
java.util.List list=query.list();result.append(" <TABLE width=\"97%\" border=\"0\" cellspacing=\"6\" cellpadding=\"0\" > <tr > <td >dfdsfsdf"+list.size()+" </td > </tr >");Iterator iter = list.iterator();while (iter.hasNext())
{
result.append(" <TR >");
String title=iter.next().toString();
result.append(" <TD width=\"100%\" height=\"21\" >");
result.append(" <span class=\"style8\" > <img src=\"pic/bugle.gif\" width=\"11\" height=\"11\" > <a href=\"#\" >"+title+" </a > </span >");
result.append(" </TD >");
result.append(" </TR >");
}
{
result.append(" <TR >");
meis.hibernate.Bulletin bulletin=(meis.hibernate.Bulletin)iter.next();
result.append(" <TD width=\"100%\" height=\"21\" >");
result.append(" <span class=\"style8\" > <img src=\"pic/bugle.gif\" width=\"11\" height=\"11\" > <a href=\"#\" >"+bulletin.getTitle()+" </a > </span >");
result.append(" </TD >");
result.append(" </TR >");
}这里这么用,~~~~~~Query query=session.createQuery("select b from meis.hibernate.Bulletin as b"); 这两边要保持一致~~~~~~~~~
java.util.List list=query.list(); 中返回的不是Bulletin对象
好好对比一下!
Query query=session.createQuery("select b.id,b.title from meis.hibernate.Bulletin as b"); ============================================while (iter.hasNext())
{
result.append(" <TR >");
Object[] os=(Object[])iter.next();
result.append(" <TD width=\"100%\" height=\"21\" >");
result.append(" <span class=\"style8\" > <img src=\"pic/bugle.gif\" width=\"11\" height=\"11\" > <a href=\"#\" >"+os[1]+" </a > </span >");
result.append(" </TD >");
result.append(" </TR >");
}
Query query=session.createQuery("select b.id from meis.hibernate.Bulletin as b");
java.util.List list=query.list(); 中返回的不是Bulletin对象
好好对比一下!就是这个答案了。你的list里面现在放的是一些id,比如{1,2,3,4},而不是bulletin的对象{bulletin1,bulletin2,bulletin3,bulletin4}.所以在结果list面的元素是不能用 getId()获是getTitle()这些方法的。
java.util.List list=query.list();
这样返回的是id数组,而
meis.hibernate.Bulletin bulletin=(meis.hibernate.Bulletin)iter.next(); 这个强制转换肯定就出错了,如下改法:
Query query=session.createQuery("select b.id from meis.hibernate.Bulletin as b");改成Query query=session.createQuery("select b from meis.hibernate.Bulletin as b");
一直以为是出在HQL语句上。
List ls = session.createQuery("select er.employerid,et.employmentid,et.startDate from Employer er left join er.employments as et")
.list(); for (Iterator itr = ls.iterator(); itr.hasNext(); )
{
Object[] oo = (Object[])itr.next();
for (int i = 0;i < oo.length ;i++ )
{
System.out.println(oo[i]);
}
System.out.println("====================");
}
this.id = id;
}
java.lang.ClassCastException 是 JVM 在检测到两个类型间的转换不兼容时引发的运行时异常Query query=session.createQuery("select b.id from meis.hibernate.Bulletin as b");[color=#FF0000]meis.hibernate.Bulletin bulletin=(meis.hibernate.Bulletin)iter.next();[/color]类型不同啊~
id 应该是一个 基本数据类型的 ,你可以直接输出
不需要 进行类型转换
Iterator iter = list.iterator(); while (iter.hasNext())
{
System.out.println(iter.next());
}
Query query=session.createQuery("select b from meis.hibernate.Bulletin as b");