Hibernate學習:Exception in thread "main" java.lang.NullPointerException

一、在學習Hibernate多對多關係的時候遇到了一下異常:java

 

 

 主函數出現了空指針異常:算法

public static void testadd() {
        Session session = HibernateUtils.openSession();//得到session
        Transaction transaction = session.beginTransaction();//開啓事務
        Student student=new Student();
        student.setSname("翟");
        student.setPoint(123f);
        student.setClassno(46);
        student.setSex("男");
        student.setBirthday("2019-11-11");
        student.setPhone("18739496522");
        student.setEmail("34288334@qq.com");

        Student student1=new Student();
        student1.setSname("翟hb");
        student1.setPoint(666f);
        student1.setClassno(46);
        student1.setSex("女");
        student1.setBirthday("2019-11-11");
        student1.setPhone("18739496522");
        student1.setEmail("34288334@qq.com");

        Course course=new Course();
        course.setCourseno("123");
        course.setCname("算法設計");
        course.setType("必修");
        course.setCredit(4);
        course.setPeriod(22);


        Course course1=new Course();
        course.setCourseno("456");
        course1.setCname("網絡");
        course1.setCredit(2);
        course1.setPeriod(12);
        course1.setType("必修");

        System.out.println(student);
        System.out.println(student1);
        System.out.println(course);
        System.out.println(course1);

        student.getCourses().add(course);
        student.getCourses().add(course1);
        student1.getCourses().add(course);
        student1.getCourses().add(course1);

        session.save(student);
        session.save(student1);
        session.save(course);
        session.save(course1);

        transaction.commit();//提交事務
        session.close();//關閉資源
    }

可是執行輸出語句可以正常輸出對象中的內容:網絡

 

 二、問題緣由:session

 

 在實體中定義一對多關係的時候沒有建立對象,致使在主函數中不能獲取集合對象。函數

修改代碼:學習

public class Student {
    private Integer studentno;
    private String sname;
    private String sex;
    private String birthday;
    private Integer classno;
    private Float point;
    private String phone;
    private String email;
    private Set<Course> courses=new HashSet<Course>();//利用集合表達一個學生有多個課程

new出來一個對象以後,主函數能夠正常的向裏面添加數據。錯誤得以解決。spa

相關文章
相關標籤/搜索