Предположим, у меня есть абстрактный родитель:
@MappedSuperclass
public abstract class State {
@Id
private Integer id;
private String humanReadableName;
}
и еще один такой:
@MappedSuperclass
public abstract class StateHistory<S extends State> {
@Id
private Long id;
private Long timestamp;
@ManyToOne
// @JoinColumn(name = <something related to the S, like S.class.getSimpleName()_id would be nice>)
private S state;
}
Теперь я могу определить:
@Entity
class StateOneHistory extends StateHistory<StateOne>{}
Однако для столбца соединения установлено значение state_id
. Поэтому мой вопрос: есть ли способ указать имя столбца (@JoinColumn
) в примере таким образом, который использует реальное имя унаследованного класса для столбца таблицы?
Точно так же было бы хорошо для парсера json (@JsonProperty
).