2014-12-25 137 views
0

我有一个休眠问题,但我不明白这个问题究竟是什么 如果你有一个想法?休眠SessionFactory不起作用

private SessionFactory sessionFactory; 
@SuppressWarnings("unchecked") 
public List<Customer> listCustomer() { 
    return sessionFactory.getCurrentSession().createQuery("FROM customer").list(); 
} 

Main.java

public class Main { 

public static void main(String[] args) { 

    CustomerDaoImpl dao=new CustomerDaoImpl(); 

    for(int i=0; i<dao.listCustomer().size(); i++){ 
     System.out.println(i); 
    } 
    } 
} 

错误

Exception in thread "main" java.lang.NullPointerException 
at com.apps.dao.CustomerDaoImpl.listCustomer(CustomerDaoImpl.java:37) 
at com.apps.dao.Main.main(Main.java:8) 
+0

你有添加sessionFactory类。 – hurricane

回答

3

您必须初始化sessionFactory。在较早的休眠版本中,您是这样做的:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 

从版本4.3.0开始。你必须这样做

Configuration configuration = new Configuration().configure(); 
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(). 
applySettings(configuration.getProperties()); 
SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build()); 
+0

@Predag​​马里奇日Thnx它的工作,但它返回另一个错误:(在线程异常“主要” org.hibernate.HibernateException:无法创建默认的tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]) – Rami

+0

检查,如果你有一个默认的'Customer'类中没有参数构造函数。 'public Customer(){super(); }' –