java.lang.NullPointerException 为什么会抛出来呀?
//表major的映射文件
<hibernate-mapping>
<class name= "com.crownsoft.qsm.bean.Major " table= "major ">
<id name= "id " type= "java.lang.String ">
<column name= "id " length= "2 " />
<generator class= "increment " />
</id>
<property name= "name " type= "java.lang.String ">
<column name= "name " length= "20 " not-null= "true " />
</property>
<property name= "shortname " type= "java.lang.String ">
<column name= "shortname " length= "10 " not-null= "true " />
</property>
<property name= "department " type= "java.lang.String ">
<column name= "department " length= "4 " not-null= "true " />
</property>
<set name= "classes " inverse= "true " cascade= "all ">
<key>
<column name= "majorid " length= "2 " not-null= "true " />
</key>
<one-to-many class= "com.crownsoft.qsm.bean.Classes " />
</set>
</class>
</hibernate-mapping>
//表classes的映射文件
<hibernate-mapping>
<class name= "com.crownsoft.qsm.bean.Classes " table= "classes ">
<id name= "id " type= "java.lang.Integer ">
<column name= "id " />
<generator class= "increment " />
</id>
<many-to-one name= "major " class= "com.crownsoft.qsm.bean.Major " fetch= "select ">
<column name= "majorid " length= "2 " not-null= "true " />
</many-to-one>
<property name= "name " type= "java.lang.String ">
<column name= "name " length= "10 " not-null= "true " />
</property>
</class>
</hibernate-mapping>
public class ClassesDAO{
private Session session;
Logger logger=null;
public ClassesDAO(){
logger=Logger.getLogger( "Logger ");
session=HibernateSessionFactory.getSession();
}
public List queryByGrade(String grade){
String hql = "FROM Classes AS c " ;
Query q = this.session.createQuery(hql);/*总是提示这行有错误,应该不是这行的错误吧*/
List l=q.list();
return l;
}
}
public class Classes implements java.io.Serializable{
private static final long serialVersionUID=7229495886607502729L;
private Integer id;
private Major major;
private String name;
// Constructors
/** default constructor */
public Classes(){
}
/** full constructor */
public Classes(Major major,String name){
this.major=major;
this.name=name;
}
// Property accessors
public Integer getId(){
return this.id;
}
public void setId(Integer id){
this.id=id;
}
public Major getMajor(){
return this.major;
}
public void setMajor(Major major){
this.major=major;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
}
public class Major implements java.io.Serializable{
private static final long serialVersionUID=-2271259265443970314L;
private String id;
private String name;
private String shortname;
private String department;
private Set classes=new HashSet();
public Major(String name,String shortname,String department){
this.name=name;
this.shortname=shortname;
this.department=department;
}
public Major(String name,String shortname,String department,Set classes){
this.name=name;
this.shortname=shortname;
this.department=department;
this.classes=classes;
}
public String getId(){
return this.id;
}
public void setId(String id){
this.id=id;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
public String getShortname(){
return this.shortname;
}
public void setShortname(String shortname){
this.shortname=shortname;
}
public String getDepartment(){
return this.department;
}
public void setDepartment(String department){
this.department=department;
}
public Set getClasses(){
return this.classes;
}
public void setClasses(Set classes){
this.classes=classes;
}
}
exception
java.lang.NullPointerException
com.crownsoft.qsm.dao.ClassesDAO.queryByGrade(ClassesDAO.java:34)
com.crownsoft.qsm.servlet.RegisterServlet.doPost(RegisterServlet.java:29)
com.crownsoft.qsm.servlet.RegisterServlet.doGet(RegisterServlet.java:19)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.crownsoft.qsm.filter.CharSetFilter.doFilter(CharSetFilter.java:21)
[解决办法]
this.session
-----
应该这个有问题吧。
[解决办法]
this.session有给赋值吗?应该是为null了