Les objets Entity dotés de constructeurs doivent également comporter un constructeur par défaut

Lorsqu'une classe entité JPA (Java Persistence API) comporte un constructeur avec des arguments, elle doit également inclure un constructeur par défaut sans argument. L'implémentation OpenJPA génère automatiquement le constructeur sans argument, contrairement à l'implémentation EclipseLink.

Cette règle recherche des classes entité définies avec les annotations @Entity ou @MappedSuperclass. Les classes entité comportant des constructeurs mais non également associées à un constructeur sans argument sont marquées. La correction automatique ajoutera un constructeur vide sans argument à la classe.

Par exemple, la règle marque la classe entité suivante :

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
classe publique MissingNoArgConstructorEntity {
    @Id private int id ; public MissingNoArgConstructorEntity (int id) { this.id = id ;
    } }

Le correctif automatisé ajoutera le constructeur sans argument :

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
classe publique MissingNoArgConstructorEntity {
    @Id private int id ; public MissingNoArgConstructorEntity () {
    } public MissingNoArgConstructorEntity (int id) { this.id = id ;
    } }

Pour des informations sur ce problème et d'autres problèmes de migration d'OpenJPA vers EclipseLink, voir le guide OpenJPA to EclipseLink JPA Migration: Mappings.