Я пытаюсь понять, как наследование работает в игре!Но пока безуспешно.
Итак, у меня есть такой суперкласс:
@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 варчар (255).Без testVal , который находится в суперклассе.
И когда я пытаюсь создать новый объект Sub класса в интерфейсе CRUD, я получаю такую ошибку: Произошла ошибка выполненияв шаблоне {module: crud} /app/views/tags/crud/form.html.Возникло исключение MissingPropertyException: такого свойства нет: testVal для класса: models.Sub.
In {module: crud} /app/views/tags/crud/form.html(вокруг строки 64) # {crud.numberField name: field.name, value: (currentObject? currentObject [field.name]: null) /}
- Что я долженсделать, чтобы правильно генерировать таблицы MySQL для унаследованных моделей и исправить ошибку?
- Возможно ли иметь один суперконтроллер для нескольких унаследованных классов?