У меня есть две таблицы с одинаковой структурой:
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);
}
}