刚开始学习hibernate的时候,第一次就遇到了空指针异常,结果是我的配置文件处理错误(主要是数据库表的字段与就java实体类的属性名单词写错了);一般是报空指针异常的话,多半是配置文件的问题。
但是这次报空指针异常找了两天的。因为我的表有个是表示时间的,数据库用的是date类型的。我在java实体类中也是用的Date类型的,但是我导入的包的java.util.Date.所以在.hbm.xml文件里我的时间type="java.util.Date",就一直报空指针异常。后来我把java实体类中的Date类型导入包改成了java.sal.Date,把.hbm.xml文件里的时间类型改成了type="java.sql.Date"。然后就好了!
org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions.
是说同时打开了两个会话关联。
结果是因为:
public Student getStudent(Class<?> cls, Serializable pk) {
Session session = null;//获得session
Transaction tx = null;//事务
Student student=null; //对象
try {
session=HibernateUtils.getSessionFactory().openSession();
tx=session.beginTransaction();//开启事务
student=(Student)session.get(cls, pk);
tx.commit();//提交事务
} catch (Exception e) {
e.printStackTrace();
tx.rollback();//回滚事务
}finally{
session.close();//关闭session 当时我把这个关闭session注释了
}
return student;
}