2013-03-02 72 views
0

我正在開發一個應用程序,並開始創建我的JPA實體(註解+ persistence.xml)。然後在我的persistence.xml文件中,我爲MySql數據庫創建了一個連接(連接很好)。如何堅持實體,如何從沒有「主類」的實體創建表?

問題是我只是不知道如何堅持我的實體而不創建「主類」。

我必須爲我要創建的每個實體運行我的主類嗎?

+0

你是什麼意思'沒有主班'?什麼應該觸發創建實體? – jonasnas 2013-03-02 13:03:18

+0

與java EE容器當然..我的意思是我必須有一個主要的類來做堅持的事情? – Nadia 2013-03-02 13:05:09

+0

什麼是EntityManager#堅持說? – skuntsel 2013-03-02 13:07:50

回答

1

要堅持一個實體,你需要一個entityManager的實例。既然你有一個Java EE容器,你可以使用註釋@PersistenceContext一些豆

得到EntityManager實例我的意思一些豆?它是由Java EE容器管理的一個bean。所以,舉例來說,你必須像這樣定義一個bean:

@Stateless 
public class MyController{ 
    @PersistenceContext 
    private EntityManager em; 

    public void persistIt(Object anEntity){ 
     em.persist(anEntity); 
    } 
} 

註釋@Stateless指示,它必須管理這一類,並採取必要的時候提供EntityManager實例照顧容器。

因此,要準確回答您的問題:只要您找到訪問entityManager實例的方法,就不必強制另一個類持久化實體。

  • 很明確不是最佳做法。
  • 要利用entityManager注入:您必須使用另一個受管bean,以便entityManager可以由容器注入。

此外,控制器是您可以正確處理您的交易的地方。