Hibernate: моделирование нескольких таблиц с похожей структурой с использованием одного класса - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть две таблицы с одинаковой структурой:

Table1: 
tab_id
field1
field2


Table2:
id
tab_id
field1
field2

Я хочу создать один класс для моделирования этих двух таблиц, например:

@Id tabId
@Colummn(name="field1") field1
@Colummn(name="field2") field2

Затем выполнить такие операции, как чтение изодну таблицу, измените что-нибудь и напишите в другую таблицу:

myObject = find in Table1 ...
change myObject ...
save myObject to Table2 ...

Есть идеи, как мне это сделать?

Лучше всего использовать MappedSuperclass, но мне придется включить вкаждый подкласс Entity - конструктор, который берет родительский MappedSuperclass и копирует каждое поле ...


Редактировать - я думаю, я могу сделать это:

@MappedSuperclass 
@Data
class MySuper {
  MySuper(MySuper other) {
    // copy...
  }
  @Id tabId;
  @Colummn(name="field1") field1;
  @Colummn(name="field2") field2;
}    

@Table(name="Table1", ...) 
Table1Entity extends MySuper {
    TableEntity(MySuper other) {
        super(other);
    }
}
...