此規則會偵測某些 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;
- 如果在 META-INF/persistence.xml 檔中將 myPersistenceUnit 定義為 persistenceUnit,則快速修正程式會將此程式碼變更為:
@PersistenceContext(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManager
myPersistenceContext;
- PersistenceUnit
@PersistenceUnit
EntityManagerFactory
myPersistenceUnit;
- 如果在 META-INF/persistence.xml 檔中將 myPersistenceUnit 定義為 persistenceUnit,則快速修正程式會將此程式碼變更為:
@PersistenceUnit(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManagerFactory
myPersistenceUnit;
- PersistenceUnit
@PersistenceUnit(unitName="someName")
EntityManager
myPersistenceUnit;
- 快速修正程式會將此程式碼變更為:
@PersistenceUnit(unitName = "someName", name = "someName" )
EntityManager
myPersistenceUnit;