注入 PersistenceContext 或 PersistenceUnit 時,請使用 EntityManager 或 EntityManagerFactory 物件,不要使用子類別。 此規則會偵測 EntityManager 或 EntityManagerFactory 的已注入子類別是否存在。
下列條件將觸發該規則:
- PersistenceContext:
- 註釋定義於欄位層次。
- 欄位類型不是 EntityManager,
javax.persistence.EntityManager
- PersistenceUnit:
- 註釋定義於欄位層次。
- 欄位類型不是 EntityManagerFactory ,
javax.persistence.EntityManagerFactory
自動修復將以 EntityManager 或 EntityManagerFactory 類別取代這些子類。
範例:
- 規則會偵測這個 PersistenceContext 程式碼:
@PersistenceContext
CustomEntityManager myMgr;
- 自動修復將變更此代碼為:
@PersistenceContext
EntityManager
myMgr;
- 附註: 如果類別尚未包含下列項目的 import 陳述式:
javax.persistence.EntityManager
那麼您更新後的程式碼將類似於
@PersistenceContext
javax.persistence.EntityManager
myMgr;
- 該規則會偵測以下 PersitenceUnit 程式碼:
@PersistenceUnit
CustomEntityManagerFactory
myFactory;
- 自動修復將變更此代碼為:
@PersistenceUnit
EntityManagerFactory
myFactory;
- 附註: 如果類別尚未包含下列項目的 import 陳述式:
javax.persistence.EntityManagerFactory
則更新後的程式碼將與此類似:
@PersistenceUnit
javax.persistence.EntityManagerFactory
myFactory;