Расширение неабстрактного класса сущностей jpa - PullRequest
0 голосов
/ 24 октября 2018

Я искал в Интернете некоторые ответы, но пока не повезло.

Мне нужно расширить существующую сущность, добавив несколько полей.

Скажем, у нас есть класс, которыйуже используется в проекте

@Entity
public class SampleEntity {
    @Id 
    private Long id;
    // some fields
}

И я хочу создать еще одно, которое добавляет некоторые дополнительные поля.Что-то вроде

@Entity
public class SampleExtendedEntity extends SampleEntity {
    // some more fields
}

Я ищу решение, которое бы создавало новую таблицу БД только с этими дополнительными полями и внешним ключом для SampleEntity.В идеале этот внешний ключ также должен быть первичным ключом SampleExtendedEntity

. Очень простой способ сделать это - использовать композицию и @OneToOne, но из-за семантики я действительно хочу использовать наследование.К сожалению, @MappedSuperclass и @Inheritance не работают для меня, потому что сущность, которую я расширяю, является классом, который может (и используется) использоваться как самостоятельный.Любые предложения будут оценены

1 Ответ

0 голосов
/ 24 октября 2018
@Entity
public class SampleExtendedEntity extends SampleEntity {
    // some more fields
int foreignKey=-1;

public SampleExtendedEntity(int key){
this.foreignKey=key;
}

public int getforeignKey(){
return foreignKey();
}
public static void main(String[] args){
SampleExtendedEntity myEntity= new SampleExtendedEntity(2);
//SampleEntity  needs a getter method for ID
System.out.println(myEntity.getForeignKey()+" "+myEntity.getId());

}

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