hibernate @entity sur la classe intérieure seulement (la classe de niveau supérieur n'est pas une @enttity)

StackOverflow https://stackoverflow.com//questions/23008424

Question

Je voudrais persister la classe intérieure dans la base de données.Mais cela ne fonctionne pas. Est-il possible de faire ça?Ou devrais-je mettre cette classe intérieure dans un nouveau fichier ordinaire? Maintenant, je reçois une erreur

 [IllegalArgumentException: Unknown entity: models.foo$bar] 

Mon fichier de classe:

package models;
public class foo {
     @Required public String report;
     @Required public String reportType;


     @Entity
     public static class bar{
         @Required public int year;
         @Required public int month;

         public void toDataBase() {
                JPA.em().persist(this);
         }
     }
}

Était-ce utile?

La solution

Citant JPA 2.1 Spécification:

La classe d'entité doit être une classe de haut niveau.Un énorme ou une interface ne doit pas être désigné comme une entité

Vous pouvez télécharger la spécification de Cette adresse. Ce qui peut être mappé en tant qu'entité est aussi bien bien décrit ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top