Cette règle détecte certaines annotations JPA
PersistenceContext ou PersistenceUnit, dans lesquelles le nom de zone est
identique au nom d'unité de persistance défini dans le fichier
persistence.xml.
Elle peut requérir un accès au fichier
persistence.xml,
qui doit se trouver dans le dossier META-INF. Elle est déclenchée dans les
conditions suivantes :
- Annotations de marqueur :
- L'annotation est définie au niveau de la zone.
- Le nom de zone est identique à un nom d'unité de persistance défini dans le
fichier persistence.xml.
- Annotations normales :
- L'annotation ne contient pas l'attribut,
name
- L'annotation contient
unitName
, mais ne contient pas
name
- L'annotation ne contient pas "name" ni "unitName". Elle est déclarée sur Field et le nom de champ est identique à un nom d'unité de persistance défini dans le fichier persistence.xml
Le correctif rapide du scanner de source ajoute l'attribut
unitName
et/ou
name
à des annotations JPA PeristenceContext ou PersistenceUnit .
Exemples :
- PersistenceContext
@PersistenceContext
EntityManager myPersistenceContext;
- Si myPersistenceUnit est défini avec persistenceUnit dans le fichier
META-INF/persistence.xml, le correctif rapide remplace le code par :
@PersistenceContext(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManager
myPersistenceContext;
- PersistenceUnit
@PersistenceUnit
EntityManagerFactory
myPersistenceUnit;
- Si myPersistenceUnit est défini avec persistenceUnit dans le fichier
META-INF/persistence.xml, le correctif rapide remplace le code par :
@PersistenceUnit(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManagerFactory
myPersistenceUnit;
- PersistenceUnit
< span class="Code">
< span class= "JavaType"> @PersistenceUnit(unitName="someName")< /span>
EntityManager
myPersistenceUnit;
- Le correctif rapide remplace ce code par :
< span class="Code">
< span class= "JavaType"> @PersistenceUnit(unitName ="someName", name ="someName") < /span>
EntityManager
myPersistenceUnit;