Această regulă detectează anumite adnotări JPA PeristenceContext sau PersistenceUnit
unde numele de câmp este acelaşi cu un nume unităţii de persistenţă care este definită în fişierul persistence.xml.
Această regulă ar putea necesita acces la fişierul persistence.xml, care trebuie să se afle în folderul META-INF. Următoarele condiţii declanşează regula:
- Adnotările Marker
- Adnotarea este definită la nivel de câmp.
- Numele de câmp este acelaşi cu un nume unităţii de persistenţă care este definită în fişierul persistence.xml.
- Adnotările Normal
- Adnotarea nu contine atributul,
name
- Adnotarea conţine
unitName
, dar nu conține
name
- Adnotarea nu conține "name", sau "unitName", și este declarată pe Field și numele câmpului este același cu un nume de unitate de persistență definit în fișierul persistence.xml
The source scanner quick fix adaugă atributul
unitName
și/sau
name
to JPA PeristenceContext or PersistenceUnit annotations.
Exemple:
- PersistenceContext
@PersistenceContext
EntityManager myPersistenceContext;
- Dacă myPersistenceUnit este definit ca persistenceUnit în fişierul
META-INF/persistence.xml, corecţia rapidă va modifica acest cod la:
@PersistenceContext(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManager
myPersistenceContext;
- PersistenceUnit
@PersistenceUnit
EntityManager
myPersistenceUnit;
- Dacă myPersistenceUnit este definit ca persistenceUnit în fişierul
META-INF/persistence.xml, corecţia rapidă va modifica acest cod la:
@PersistenceUnit(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManager
myPersistenceUnit;
- PersistenceUnit
@PersistenceUnit(unitName="someName")
EntityManager
myPersistenceUnit;
- Corecţia rapidă va modifica acest cod la:
@PersistenceUnit(unitName = "someName", name = "someName" )
EntityManager
myPersistenceUnit;