Când se injectează un PersistenceContext sau PersistenceUnit, utilizaţi obiectele EntityManager sau
EntityManagerFactory şi nu folosiţi subclase. Această regulă detectează prezenţa subclaselor injectate EntityManager
sau EntityManagerFactory.
Următoarele condiţii vor declanşa regula:
- PersistenceContext:
- Adnotarea este definită la nivel de câmp.
- Tipul de teren nu este EntityManager
javax.persistence.EntityManager
- PersistenceUnit:
- Adnotarea este definită la nivel de câmp.
- Tipul de teren nu este EntityManagerEntityManager,
javax.persistence.EntityManagerFactory
Corecţa rapidă a scanerului de sursă înlocuieşte aceste subclase cu clasele EntityManager sau EntityManagerFactory.
Exemple:
- Regula detectează acest cod PersistenceContext:
@PersistenceContext
CustomEntityManager myMgr;
- Corecţia rapidă modifică acest cod la:
@PersistenceContext
EntityManager
myMgr;
- Notă: În cazul în care clasa nu conține deja declarația de import a
javax.persistence.EntityManager
apoi codul actualizat va fi similar cu:
@PersistenceContext
javax.persistence.EntityManager
myMgr;
- Regula detectează codul PersitenceUnit:
@PersistenceUnit
CustomEntityManagerFactory
myFactory;
- Corecţia rapidă va modifica acest cod la:
@PersistenceUnit
EntityManager
myFactory;
- Notă: În cazul în care clasa nu conține deja declarația de import a
javax.persistence.EntityManagerFactory
apoi codul actualizat va fi similar cu:
@PersistenceUnit
javax.persistence.EntityManagerFactory
myFactory;