1

I'm using hibernate annotation in my program, but its getting error. It returns no session factory that I opened. I used netbeans IDE and when I debug my program, it want to open a session and next step, it is going to InvocationTargetException.java and do not anything else.

it is my folders

enter image description here

it is my hibernate util

public class HibernatUtil {
    private static final  SessionFactory FACTORY;

     static {

        FACTORY = new AnnotationConfiguration().configure("/hibernate.cfg.xml").buildSessionFactory();

    }



    public static SessionFactory getSessionFactory() {


        return FACTORY;

    }


}

it is my class that get session factory, but getting error

public class UserDAO {
    private Session session;
    public boolean insert(User user){
        session=HibernatUtil.getSessionFactory().getCurrentSession();
        Transaction transaction=null;
        String result;
        try{
            transaction=session.beginTransaction();
           session.save(user);
            transaction.commit();
            result="your insert  was sucssedfull";
        }
        catch(Exception e ){
            result="your transaction was faild";
              if (transaction!=null) transaction.rollback();
        }
        System.out.println(result);
        return  transaction!=null ;   
    }
}

and then after next step go too this class

enter image description here

Alex Andrews
  • 1,498
  • 2
  • 19
  • 33
faraz
  • 65
  • 6

1 Answers1

1

Try using this HibernateUtil instead :

public class HibernateUtil {
    public static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

}

and in your userDao use this :

private final SessionFactory sessionFactory = HibernateUtil.sessionFactory.getCurrentSession();
Mabala
  • 21
  • 2