2013-03-24 64 views
0

假設我想對現有的JPA方案執行單個數據操作,例如對於每個實體創建實體學生。我添加了處理學生的功能,並且我想從CSV文件中加載它們(只是一個虛構的例子)。當然,我準備了實體和表格。使用JPA插入數據與EJB

現在我該如何在EJB範圍內做到這一點?

通常使用Spring我會簡單地編寫一個單元測試,它使用@RunWith(SpringJUnit4ClassRunner.class)註釋來加載持久化被初始化的上下文。我不能在EJB中這樣做,因爲我依賴於Java EE容器來爲我提供數據源和PersistenceContext

+0

只需使用Arquillian。看到這幾乎相同的問題:http://stackoverflow.com/questions/15524687/in-container-testing-with-junit/15524916 – 2013-03-24 09:47:19

回答

0

您可以在應用程序容器外使用JPA。在應用程序容器中運行時,您使用的是容器管理的實體管理器。您可以在普通的JavaSE應用程序中使用JPA。在這些情況下,您需要一個應用程序管理的實體管理器。它使用javax.persistence.Persistence類來獲取EntityManagerFactory(從中獲取EntityManager)。

一旦你擁有了entityManager,你可以執行相同的代碼。所有你需要在測試中做的事情是確保你可以進入Persistence類,並且你應該都很好。