Как изменить имя столбца для дочернего класса (InheritanceType.Joined) - PullRequest
1 голос
/ 17 января 2020

Мне нужно изменить имя столбца в дочернем классе при использовании @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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...