2014-12-25 180 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(); }' –