Я пытаюсь понять, как работает наследование в игре! Но пока безуспешно.
Итак, у меня есть такой суперкласс:
@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) /}