Как наследовать модель от суперкласса в playframework

Я пытаюсь понять, как работает наследование в игре! Но пока безуспешно.

Итак, у меня есть такой суперкласс:

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)  
abstract class SuperClass extends Model {  
    @Id  
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "SEQ_TABLE")   
    @TableGenerator(name = "SEQ_TABLE")  
    Long id;  

    int testVal;
}

И 2 унаследованных класса:

@Entity
public class Sub extends SuperClass {        
    String name;

    @Override
    public String toString() {
            return name;
    }
}

@Entity
public class Sub1 extends SuperClass {        
    String name;

    @Override
    public String toString() {
            return name;
    }
}

Также у меня есть 2 контроллера для унаследованных классов:

public class Subs and Sub1s extends CRUD {

}

После запуска приложения я получаю 2 таблицы в базе данных MySQL для моих моделей (Sub и Sub1) с такой структурой: id bigint (20), name varchar (255). Без testVal , который находится в суперклассе.

И когда я пытаюсь создать новый объект класса Sub в интерфейсе CRUD, я получаю такую ​​ошибку: Произошла ошибка выполнения в шаблоне {module: crud} / app / views /tags/crud/form.html. Возникло исключение MissingPropertyException: нет такого свойства: testVal для класса: models.Sub.

В {module: crud} /app/views/tags/crud/form.html (около строки 64) # {crud.numberField name: field.name, value: (currentObject? currentObject [field.name]: null) /}

  1. Что мне делать, чтобы правильно сгенерировать таблицы MySQL для унаследованных моделей и исправить ошибку?
  2. Можно ли иметь один суперконтроллер для нескольких унаследованных классов?
6
задан Thomas 18 March 2014 в 14:20
поделиться