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
O remediere automată va înlocui aceste subclase cu clasele EntityManager sau EntityManagerFactory.
Exemple:
- Regula detectează acest cod PersistenceContext:
@PersistenceContext
CustomEntityManager myMgr;
- Soluția automată va modifica acest cod la:
@PersistenceContext
EntityManager
myMgr;
- Notă: În cazul în care clasa nu conține deja declarația de import a
javax.persistence.EntityManager
atunci codul dvs. actualizat va fi similar cu:
@PersistenceContext
javax.persistence.EntityManager
myMgr;
- Regula detectează codul PersitenceUnit:
@PersistenceUnit
CustomEntityManagerFactory
myFactory;
- Soluția automată 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
atunci codul actualizat va fi similar cu:
@PersistenceUnit
javax.persistence.EntityManagerFactory
myFactory;