我在程序中使用hibernate注释,但它出错了。它不返回我打开的会话工厂。我使用了netbeans IDE,当我调试程序时,它想打开一个会话,下一步,它将转到InvocationTargetException.java
,而不做任何其他事情。
是我的文件夹
在此处输入图像描述
这是我的休眠util
public class HibernatUtil {
private static final SessionFactory FACTORY;
static {
FACTORY = new AnnotationConfiguration().configure("/hibernate.cfg.xml").buildSessionFactory();
}
public static SessionFactory getSessionFactory() {
return FACTORY;
}
}
这是我的类得到会话工厂,但得到错误
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 ;
}
}
然后在下一步之后,也进行此类
在此处输入图像描述
试着使用这个Hibernate Util:
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;
}
}
在你的用户中使用这个:
private final SessionFactory sessionFactory = HibernateUtil.sessionFactory.getCurrentSession();