Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

hibernate @Entity on inner class only (top level class is not an @Entity)

I would like to persist inner class into database. But it dosnt work. Is there possibilty to do that? Or should i put that inner class into new plain file? Now I am getting an error

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

My class file:

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);
         }
     }
}
like image 262
masterdany88 Avatar asked Apr 11 '14 09:04

masterdany88


1 Answers

Quoting JPA 2.1 specification:

The entity class must be a top-level class. An enum or interface must not be designated as an entity

You can download the spec from this address. What can be mapped as an entity is as well pretty well described here.

like image 91
Blekit Avatar answered Nov 15 '22 10:11

Blekit