2012-01-31 65 views
0

關於這個PersistenceException有很多問題,但我還沒有看到一些,特定的代碼行有時會拋出這個異常(但不是隨機的:-)。有時會得到PersistenceException:沒有EntityManager的持久性提供者

那麼,你有什麼想法,爲什麼一旦我的簡單應用程序發現供應商確定,但後來它不會?

NetBeans IDE 7.0.1,NetBeans平臺應用程序,使用持久性鏈接庫和Derby embbed。

我試圖this CRUD creatable capabilities "tutorial" by Geertjan,但保存新的旅行時,我得到的PersistenceException:

at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) 
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) 
at org.mv.mm.api.TripSearchDAO.createTransactionalEntityManager(TripSearchDAO.java:61) 
at org.mv.mm.api.TripSearchDAO.create(TripSearchDAO.java:41) 
at org.mv.mm.api.TripQuery$3.create(TripQuery.java:69) 
[catch] at org.mv.mm.api.TripType.create(TripType.java:64) 

但在DAO類的「搜索」的方法,有一個名爲太和EntityManager的正確創建這個私有方法createTransactionalEntityManager。爲什麼它可能是?這個問題和其他很多人一樣(好吧,我沒有解決,但我明天再試一次)。它每次都失敗。我誤解了try catch塊,所以我沒有注意到這個例外。每次調用Persistence.createEntityManagerFactory(「TripPU」)。createEntityManager()時都會發生。

+0

您發佈的異常與您鏈接的代碼之間的東西不相加。跟蹤顯示TripSearchDAO.java的@行61拋出異常,這是鏈接到的代碼中的空格式行... – TC1 2012-01-31 09:21:22

+0

是的,當然,我的代碼有點不同。實際上,它是第52行: em = Persistence.createEntityManagerFactory(「TripPU」)。createEntityManager(); – 2012-01-31 20:41:53

+0

而thx,通知,@ TC1 – 2012-01-31 21:11:28

回答

0

還發現真正的問題的真正解決方案:如果調用Persistence.createEntityManagerFactory(「TripPU」)是正確的,那麼確實在persistence.xml中檢查持久性單元的名稱(如TripPU) ).createEntityManager();

PU與DB實體不一樣,因此當您嘗試做一些不同的示例(不同的表格等)時,教程可能會讓您感到困惑。

+0

不適合我,話題完全關閉。 – 2012-02-02 13:23:15

0

在我看來,這個問題的答案: 究其原因,爲什麼的PersistenceException只是偶爾發生,是其他時間,當它看來,一切都OK,有問題的行:

em = Persistence.createEntityManagerFactory("TripPU").createEntityManager(); 

是從try ... catch塊中的另一個類調用,其中「catch」塊不執行任何操作。所以我沒有注意到它總是失敗。

+0

管理員:我不知道,根據Stackoverflow的政策,這讓我覺得我這樣結束我的問題。也許會產生另一個問題(從這個問題出現),或者找到解決方案已經回答了類似的問題。這對於那些會做類似教程並且遇到問題的人來說很有用,這種情況只會發生在有些時候。所以我沒有看到重命名所有問題,並將其重寫爲對他們非常有用。 – 2012-02-02 10:59:57

相關問題