Как переопределить родительские атрибуты @MappedSuperclass @column в дочернем объекте, расширяющем родительский объект при вставке дочернего объекта

У меня есть два класса A и B, B расширяет A, а A - это @MappedSuperclass, поскольку он расширяется другими объектами, а также для некоторых общих полей.

Класс А

@MappedSuperclass
public class A implements Serializable { 

@Column(name="TYPE_ID")
private String type;

@Column(name="FEATURE_CODE")
private String featureCode;

}

Класс Б

public class B extends A implements Serializable { 

@Column(name="ID")
private String id;

@Column(name="GROUP")
private String group;

}

Теперь проблема в том, что когда я пытаюсь сохранить класс B, он использует TYPE_ID и FEATURE_CODE в запросе INSERT и целевой таблице базы данных TABLE B не имеет столбца FEATURE_CODE, что приводит к исключению.

Может ли кто-нибудь указать мне правильное направление, как игнорировать поле FEATURE_CODE при сохранении дочернего объекта B? Спасибо !


person ngCoder    schedule 03.04.2017    source источник


Ответы (1)


@MappedSuperclass нужен конструктор, а также его получение и установка. и ваш класс, B,..

должны иметь столбцы A в базе данных, если вы делаете это с помощью спящего режима, вы должны создать их автоматически, но если вы делаете это вручную, вы должны создать столбцы A в таблице B

person Community    schedule 16.02.2018