Java 提供NullPointerException的Hibernate方法

Java 提供NullPointerException的Hibernate方法,java,spring,hibernate,jakarta-ee,Java,Spring,Hibernate,Jakarta Ee,我创建了一个addRolesToUser方法,这个方法有两个参数,一个角色对象和一个用户对象 但是,当我在主方法中调用此方法时,会抛出一个NullPointerException 这是我的主要观点: 例外情况是: Exception in thread "main" java.lang.NullPointerException at blog.com.dao.UserImp.addRolesToUser(UserImp.java:154) at blog.com.dao.main

我创建了一个addRolesToUser方法,这个方法有两个参数,一个角色对象和一个用户对象

但是,当我在主方法中调用此方法时,会抛出一个NullPointerException

这是我的主要观点:

例外情况是:

Exception in thread "main" java.lang.NullPointerException
    at blog.com.dao.UserImp.addRolesToUser(UserImp.java:154)
    at blog.com.dao.main.main(main.java:37)
我猜user.getRoles.addroles会中断,因为您没有初始化用户的角色。所以,在用户实体中,应该有如下内容

private List<Role> roles = new ArrayList<Role>();

现在我更改了addRolesToUser方法: 新版本的代码为:

public void addRolesToUser(Role roles,UserDao user) {

     try{ 
       session.beginTransaction();
          roles=new Role();
          user=new UserDao();
          user.getRoles().add(roles);
          session.save(roles);
          session.save(user);
          session.getTransaction().commit();



     }catch(HibernateException e){
         session.getTransaction().rollback();
         e.printStackTrace();
     }
    }
当我在Main中使用该方法时,nullpointerexception的问题就解决了
但是在我的数据库中,object userDao和Role都是Null,而不是数据库中的任何东西都是Null。

第154行是哪一行?能否显示初始化会话的部分?我怀疑它是空的。我在HibernateUtil类公共类HibernateUtil{private static final SessionFactory SessionFactory;static{try{//从标准hibernate.cfg.xml//配置文件创建SessionFactory.SessionFactory=new AnnotationConfiguration.configure.buildSessionFactory;}catch Throwable ex{//记录异常。System.err.PrintLInitial SessionFactory创建失败。+ex;抛出新异常InInitializeErrorEx;}在我的userDao:private列表角色中有,对于getter和settryes,但您没有初始化它,请注意最后的新ArrayList。好的,它说异常在UserImp.java:154中。那一行是什么代码?在UserImp.java:154 session.beginTransaction中;因此,session为null。用初始化的代码更新问题把它洗干净。
Exception in thread "main" java.lang.NullPointerException
    at blog.com.dao.UserImp.addRolesToUser(UserImp.java:154)
    at blog.com.dao.main.main(main.java:37)
private List<Role> roles = new ArrayList<Role>();
public void addRolesToUser(Role roles,UserDao user) {

     try{ 
       session.beginTransaction();
          roles=new Role();
          user=new UserDao();
          user.getRoles().add(roles);
          session.save(roles);
          session.save(user);
          session.getTransaction().commit();



     }catch(HibernateException e){
         session.getTransaction().rollback();
         e.printStackTrace();
     }
    }