2011-04-06 80 views
0

我目前正在使用Hibernate + JPA的項目。 我不記得我在項目中改變了什麼,但每次我嘗試實例化一個新的EntityManagerFactory時,它都清除了數據庫中的所有數據。Persistence.createEntityManagerFactory清除整個數據庫

這裏是代碼片段:

public abstract class GenericDAO<T> { 

protected Class<T> t; 
protected EntityManagerFactory managerFactory; 
protected EntityManager manager; 
protected Session hibernateSession; 

public GenericDAO(Class<T> t) { 
    this.t = t; 
    this.managerFactory = Persistence.createEntityManagerFactory("hibernatePersistence"); 
    this.manager = this.managerFactory.createEntityManager(); 
    this.hibernateSession = HibernateUtil.getSessionFactory().openSession(); 
} 

在包含 「Persistence.createEntityManagerFactory(」 hibernatePersistence 「)」 行,整個數據庫被清除出去。

我竭盡全力解決這個問題......我希望你們能幫忙。

在此先感謝!

回答

2

在您的項目中找到hibernate.hbm2ddl.auto屬性(可能是persistence.xml文件)並將其刪除或將其值更改爲validate。另請參見:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-optional

+0

'更新',或'驗證'是好的。只要避免'drop-create'。 (+1) – Bozho 2011-04-06 21:31:01

+0

不,我試過這兩個建議,沒有任何幫助,任何其他的想法? – 2011-04-07 01:25:18

+0

也許你正在使用內存數據庫? H2/HSQLDB?什麼是您的JDBC URL? – 2011-04-07 06:08:06

0

解決通過刪除並創建一個全新的persistence.xml。不知道爲什麼這個問題發生,但從來不知道,它現在的作品...