Verwenden Sie bei der Injektion von PersistenceContext oder PersistenceUnit EntityManager- oder EntityManagerFactory-Objekte und keine Unterklassen. Diese Regel erkennt das Vorhandensein injizierter Unterklassen von EntityManager und EntityManagerFactory.
Die folgenden Bedingungen lösen die Regel aus:
- PersistenceContext:
- Die Annotation wird auf Feldebene definiert.
- Der Feldtyp ist nicht EntityManager.
javax.persistence.EntityManager
- PersistenceUnit:
- Die Annotation wird auf Feldebene definiert.
- Der Feldtyp ist nicht EntityManagerFactory,
javax.persistence.EntityManagerFactory
Die Schnellkorrektur im Quellenscanner ersetzt diese Unterklassen durch EntityManager- bzw. EntityManagerFactory-Klassen.
Beispiele:
- Die Regel erkennt diesen PersistenceContext-Code:
@PersistenceContext
CustomEntityManager myMgr;
- Die Schnellkorrektur ändert den Code wie folgt:
@PersistenceContext
EntityManager
myMgr;
- Hinweis: Wenn die Klasse noch keine Importanweisung von
javax.persistence.EntityManager
In diesem Fall wird der aktualisierte Code wie folgt aussehen:
@PersistenceContext
javax.persistence.EntityManager
myMgr;
- Die Regel erkennt diesen PersistenceUnit-Code:
@PersistenceUnit
CustomEntityManagerFactory
myFactory;
- Die Schnellkorrektur ändert den Code wie folgt:
@PersistenceUnit
EntityManagerFactory
myFactory;
- Hinweis: Wenn die Klasse noch keine Importanweisung von
javax.persistence.EntityManagerFactory
In diesem Fall wird der aktualisierte Code wie folgt aussehen:
@PersistenceUnit
javax.persistence.EntityManagerFactory
myFactory;