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
La correction automatique ajoutera l'attribut
unitName
et/ou
name
à des annotations JPA PeristenceContext ou PersistenceUnit .
Exemples :
- PersistenceContext
@PersistenceContext
EntityManager myPersistenceContext;
- Si myPersistenceUnit est défini comme un persistenceUnit dans la rubrique META-INF/persistence.xml le correctif automatique changera ce code en :
@PersistenceContext(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManager
myPersistenceContext;
- PersistenceUnit
@PersistenceUnit
EntityManagerFactory
myPersistenceUnit;
- Si myPersistenceUnit est défini comme un persistenceUnit dans la rubrique META-INF/persistence.xml le correctif automatisé changera ce code en :
@PersistenceUnit(unitName = "myPersistenceUnit", name = "myPersistenceUnit" )
EntityManagerFactory
myPersistenceUnit;
- PersistenceUnit
< span class="Code">
< span class= "JavaType"> @PersistenceUnit(unitName="someName")< /span>
EntityManager
myPersistenceUnit;
- Le correctif automatisé remplacera ce code par le suivant :
< span class="Code">
< span class= "JavaType"> @PersistenceUnit(unitName ="someName", name ="someName") < /span>
EntityManager
myPersistenceUnit;