Учитывая этот класс:
@MappedSuperclass
public abstract class AbstractEntity {
int id;
public void setId(int id) { this.id = id; }
public int getId() { return id; }
// other mappings
}
Я хочу определить сущность:
@Entity
public class SomeEntity extends AbstractEntity {
@Override
@Id // or @OneToOne etc.
public int getId() { return id; }
}
Но это не удается с ошибкой «Идентификатор не указан» (или «Не удалось определить тип для») в SomeEntity. Если я удалю геттер из суперкласса, он сработает. Разве я не могу использовать эту стратегию переопределения? Почему бы и нет, а если да, то как?
Добавление
@AttributeOverride(name = "id", column = @Column(name = "ID"))
к подклассу не изменяет ошибку.
So there is no way to... mark an existing field as the ID in a subclass.
может сказать мне, что я пытаюсь сделать что-то не так. Какой из ответов я должен смотреть в ссылке, так как там есть противоречивые мнения. - person Mark   schedule 07.06.2017