@MappedSuperclass
public class A{
@Id
private int id;
}
@Entity @Table( name = "B_table" )
@AttributeOverride ( name = "id" , column = @Column( name ="B_id" ) )
public class B extends A{
}
привет, я пытаюсь переопределить имя столбца идентификатора. Моим таблицам всегда присваивается имя столбца идентификатора с префиксом имени таблицы, например, для таблицы PERSON столбец идентификатора - PERSON_ID, в то время как в нашей модели java наши классы наследуются от суперкласса generi c, который имеет поле с именем id с JPA аннотация @ Id
Простые тесты на постоянство для этого кода проходят. Но hibernate, кажется, запутывается, когда его просят генерировать SQL запросов из этих классов, часто создавая запросы, которые включают столбцы как с (префиксом name) id, так и с последним, что вызывает ошибки, поскольку у нас нет таблиц с именем столбца = 'id'.
В других местах у меня есть красные вопросы, которые говорят о том, что AttributeOverride не предназначен для изменения модели спящего режима, и поэтому не может делать то, что я хочу, чтобы он делал здесь. Кто-нибудь получил какие-либо решения, предложения?