public class ResultAction extends ActionSupport{
private List<StudentLesson> studentlessonlist;
@Override
public String execute() throws Exception {
studentlessonlist=new ArrayList<StudentLesson>();
DbOperate db=new DbOperate();
List list=db.queryStudentLesson();
Iterator iterator=list.iterator();
while(iterator.hasNext()){
StudentLesson studentlesson=(StudentLesson) iterator.next();
System.out.println(studentlesson.getId());
System.out.println(studentlesson);
System.out.println(studentlesson.getRes1());
System.out.println(studentlesson.getRes2());
System.out.println(studentlesson.getRes3());
System.out.println(studentlesson.getRes4());
System.out.println(studentlesson.getRes5());
System.out.println(studentlesson.getRes6());
studentlessonlist.add(studentlesson);
}
return SUCCESS;
}
public List<StudentLesson> getStudentlessonlist() {
return studentlessonlist;
}
public void setStudentlessonlist(List<StudentLesson> studentlessonlist) {
this.studentlessonlist = studentlessonlist;
}这是DbOperate的类
public List queryStudentLesson(){//查询所有成绩单
List list=null;
String str="from StudentLesson ";
Transaction tx=null;
Session session=HibernateSessionFactory.getSession();
try {
tx=session.beginTransaction();
tx.begin();
Query query=session.createQuery(str);
list=query.list();
tx.commit();
} catch (HibernateException e) {
if(tx!=null){
tx.rollback();
}
throw e;
}
return list;
}
用test类查询可以查询到
public static void main(String[] args) {
DbOperate db=new DbOperate();
List list=db.queryStudentLesson();
Iterator iterator=list.iterator();
while(iterator.hasNext()){
StudentLesson studentlesson=(StudentLesson) iterator.next();
System.out.println("name:"+studentlesson.getStudent().getName()+"lesson:"+studentlesson.getLesson().getName()
+"成绩1:"+studentlesson.getRes1()+"成绩2:"+studentlesson.getRes2()+"成绩3:"+studentlesson.getRes3()
+"成绩4:"+studentlesson.getRes4()+"成绩5:"+studentlesson.getRes5()
+"成绩6:"+studentlesson.getRes6());
}
}
可以正常显示
但用网页,studentlesson除了getId可以显示,其他属性都为null
private List<StudentLesson> studentlessonlist;
@Override
public String execute() throws Exception {
studentlessonlist=new ArrayList<StudentLesson>();
DbOperate db=new DbOperate();
List list=db.queryStudentLesson();
Iterator iterator=list.iterator();
while(iterator.hasNext()){
StudentLesson studentlesson=(StudentLesson) iterator.next();
System.out.println(studentlesson.getId());
System.out.println(studentlesson);
System.out.println(studentlesson.getRes1());
System.out.println(studentlesson.getRes2());
System.out.println(studentlesson.getRes3());
System.out.println(studentlesson.getRes4());
System.out.println(studentlesson.getRes5());
System.out.println(studentlesson.getRes6());
studentlessonlist.add(studentlesson);
}
return SUCCESS;
}
public List<StudentLesson> getStudentlessonlist() {
return studentlessonlist;
}
public void setStudentlessonlist(List<StudentLesson> studentlessonlist) {
this.studentlessonlist = studentlessonlist;
}这是DbOperate的类
public List queryStudentLesson(){//查询所有成绩单
List list=null;
String str="from StudentLesson ";
Transaction tx=null;
Session session=HibernateSessionFactory.getSession();
try {
tx=session.beginTransaction();
tx.begin();
Query query=session.createQuery(str);
list=query.list();
tx.commit();
} catch (HibernateException e) {
if(tx!=null){
tx.rollback();
}
throw e;
}
return list;
}
用test类查询可以查询到
public static void main(String[] args) {
DbOperate db=new DbOperate();
List list=db.queryStudentLesson();
Iterator iterator=list.iterator();
while(iterator.hasNext()){
StudentLesson studentlesson=(StudentLesson) iterator.next();
System.out.println("name:"+studentlesson.getStudent().getName()+"lesson:"+studentlesson.getLesson().getName()
+"成绩1:"+studentlesson.getRes1()+"成绩2:"+studentlesson.getRes2()+"成绩3:"+studentlesson.getRes3()
+"成绩4:"+studentlesson.getRes4()+"成绩5:"+studentlesson.getRes5()
+"成绩6:"+studentlesson.getRes6());
}
}
可以正常显示
但用网页,studentlesson除了getId可以显示,其他属性都为null
解决方案 »
- james 邮件服务器发发就发了。怎么回事啊!
- myeclipse tomcat端口被占用,tomcat起不来!急!急!急
- 新手 代码内存走向问题
- MyEclipse7.5的反编译
- 关于 如何监控 数据库表的 更改动作
- 判断是否为当前时间???
- 求问个EJB的问题
- jni 如何调用 未知的dll呀 急~~
- Struts的ActionForm是否支持数组啊???怎么用
- 求大能帮忙解决下问题SpringMVC+Hibernate
- 关于spring jdbc in语句操作的问题,急!!!
- getOutputStream() has already been called for this response问题
String str="from StudentLesson ";
你这个方法最好写为public List<StudentLesson> queryStudentLesson()
这样自动转换类型。我认为你在action中的list里面是Object而不是StudentLesson,重新定义方法之后你在action中获取list的时候用private List<StudentLesson> studentlessonlist;去获取;不要用List list去获取。
1
null
null
null
null
null
null
2
null
null
null
null
null
null
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.bean.Lesson" table="lesson" >
<id name="id" type="java.lang.Integer">
<generator class="increment"/>
</id>
<property name="name"/>
</class>
<class name="com.bean.Student" table="student">
<id name="id" type="java.lang.Integer">
<generator class="increment"/>
</id>
<property name="name"/>
<set name="lessons">
<key column="id"></key>
<one-to-many class="com.bean.Lesson"/>
</set>
<set name="studentlessons">
<key column="id"></key>
<one-to-many class="com.bean.StudentLesson"/>
</set>
</class>
<class name="com.bean.StudentLesson" table="student_lesson">
<id name="id" type="java.lang.Integer">
<generator class="increment"/>
</id>
<property name="res1" column="res_1"/>
<property name="res2" column="res_2"/>
<property name="res3" column="res_3"/>
<property name="res4" column="res_4"/>
<property name="res5" column="res_5"/>
<property name="res6" column="res_6"/>
<many-to-one name="student" class="com.bean.Student" column="student_id" cascade="save-update" not-null="true"></many-to-one>
<many-to-one name="lesson" class="com.bean.Lesson" column="lesson_id" cascade="save-update" not-null="true"></many-to-one>
</class>
</hibernate-mapping>
package com.bean;public class StudentLesson {
private int id;
private Lesson lesson;
private Student student;
private String res1;
private String res2;
private String res3;
private String res4;
private String res5;
private String res6;
private String avg;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Lesson getLesson() {
return lesson;
}
public void setLesson(Lesson lesson) {
this.lesson = lesson;
}public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public String getRes1() {
return res1;
}
public void setRes1(String res1) {
this.res1 = res1;
}
public String getRes2() {
return res2;
}
public void setRes2(String res2) {
this.res2 = res2;
}
public String getRes3() {
return res3;
}
public void setRes3(String res3) {
this.res3 = res3;
}
public String getRes4() {
return res4;
}
public void setRes4(String res4) {
this.res4 = res4;
}
public String getRes5() {
return res5;
}
public void setRes5(String res5) {
this.res5 = res5;
}
public String getRes6() {
return res6;
}
public void setRes6(String res6) {
this.res6 = res6;
}
public String getAvg() {
return avg;
}
public void setAvg(String avg) {
this.avg = avg;
}
}
java.lang.NullPointerException
org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:830)
org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
org.hibernate.type.EntityType.resolve(EntityType.java:303)
org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
org.hibernate.loader.Loader.doQuery(Loader.java:717)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
org.hibernate.loader.Loader.doList(Loader.java:2145)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
org.hibernate.loader.Loader.list(Loader.java:2024)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
com.dao.DbOperate.queryStudentLesson(DbOperate.java:82)
com.action.ResultAction.execute(ResultAction.java:22)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)