此規則會偵測某些 JPA PeristenceContext 或 PersistenceUnit 註釋,其中欄位名稱與定義於 persistence.xml 檔的持續性單元名稱相同。
此規則可能要求存取 persistence.xml 檔,該檔案必須位於 META-INF 資料夾內。 下列條件會觸發該規則:
- 標記註釋:
- 註釋定義於欄位層次。
- 欄位名稱與定義於 persistence.xml 檔的持續性單元名稱相同。
- 一般註釋:
- 註釋不包含屬性,
name
- 註釋包含
unitName
,但不包含
name
- 註釋不包含 "name" 或 "unitName" 且在欄位上宣告,並且
欄位名稱與
persistence.xml 檔中定義的持續性單元名稱相同
自動修正將新增屬性
unitName
及/或
name
至 JPA PeristenceContext 或 PersistenceUnit 註釋。
範例:
- PersistenceContext
@PersistenceContext
EntityManager myPersistenceContext;
- 如果 myPersistenceUnit 定義為 persistenceUnit 中的 META-INF/persistence.xml 檔案,則自動修正會將此代碼變更為:
@PersistenceContext(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManager
myPersistenceContext;
- PersistenceUnit
@PersistenceUnit
EntityManagerFactory
myPersistenceUnit;
- 如果 myPersistenceUnit 定義為 persistenceUnit 中的 META-INF/persistence.xml 檔案,自動修復程式會將此代碼變更為:
@PersistenceUnit(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManagerFactory
myPersistenceUnit;
- PersistenceUnit
@PersistenceUnit(unitName="someName")
EntityManager
myPersistenceUnit;
- 自動修復程式會將此代碼變更為
@PersistenceUnit(unitName = "someName", name = "someName" )
EntityManager
myPersistenceUnit;