hibernate TABLE_PER_CLASS, override column
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
hi all
є проблема
фактично потрібно замінити тип колонки в сабкласі. Теоретично треба видали колонку з супер класа.
@Entity @Table(name = "document_relation") @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) public class DocumentRelation { @ManyToOne(targetEntity = Document.class, fetch = FetchType.LAZY) @Index(name = "document_id_index") @JoinColumn(name="document_id") public Document document;
@Entity @SecondaryTable(name = "document_relation_archive") @AttributeOverride(name = "document_id", column = @Column(name = "old_document_id",nullable = false, insertable = false, updatable = false)) @DiscriminatorColumn public class DocumentRelationArchive extends DocumentRelation { @ManyToOne(targetEntity = DocumentArchive.class, fetch = FetchType.LAZY) @Index(name = "document_id_index") @JoinColumn(name="document_id") private DocumentArchive documentArchive;
тобто в DocumentRelation є document_id типу Document а в DocumentRelationArchive мены потрібно!!! document_id типу DocumentArchive
AttributeOverride бажаного функціоналу не приніс. Що б я не робив у будь якому випадку виникає ерора про дублювання колонки в класі нащадку(Duplicate property mapping of document found in)
ну що мені робити?
Для чого це все — мені фактично треба здублювати табличку. Дублюється табличка а також функціонал даошки.. і щоб не дублювати ф-онал(:)) даошки мені потрібен цей інхерітенс
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів