Мне нужно изменить имя столбца в дочернем классе при использовании @Inheritance(strategy = InheritanceType.JOINED)
Поэтому мой базовый класс выглядит следующим образом:
@Table(name = "expense_general_entry")
@Inheritance(strategy = InheritanceType.JOINED)
public class BaseClass {
@Id
@Column(name = "id")
private Long id;
}
Дочерний класс
@PrimaryKeyJoinColumn(name = "childClassId")
public class Child extends BaseClass{
//Some data
}
Я бы хотел иметь поле childClassId
в классе Child
вместо id, но со значением id. Прямо сейчас нет Дочерний класс имеет это поле, но оно всегда равно нулю, вместо этого есть поле id
с заданным значением. Когда я добавляю этот столбец как этот
@PrimaryKeyJoinColumn(name = "childClassId")
public class Child extends BaseClass{
@Column(name="childClassId")
private Long childClassId;
}
, я получаю исключения, что "childClassId" не может быть нулевым.
Структуры таблицы
Base class
Id (PK) | version | name
Child class
ChildId (PK) AND (FK -> Base.Id) | childSpecificField
Когда я вставляю новую строку, Child
имеет установленный атрибут ID
, но не ChildId
(который всегда равен нулю) - и мне нужно установить и id, и childId.