У меня есть существующая схема БД, которую я пытаюсь ORM'изложить с аннотациями JPA / Hibernate. Схема предназначена для
позволяют клиентам связывать дополнительную информацию с каждой строкой в таблице. Вместо использования шаблона ключ-значение
существующее решение определяет необходимое количество динамических столбцов во время установки и изменяет таблицу на
добавить дополнительные столбцы для динамических полей. В действительности каждая таблица имеет набор известных / фиксированных столбцов и группу динамических столбцов.
|table:X|
|id|known1|known2|dynamic1|dynamic2|..|dynamicx|
Таблица параметров указывает, какие таблицы имеют дополнительные динамические поля
|table:parameter|
|table|column|meta|
|x|dynamic1||
|x|dynamic2||
|x|dynamicx||
|y|dynamic15||
В JPA-моделировании это легко создать определение для известных фиксированных столбцов в каждой таблице.
@Entity
@Table(name="x")
public class X
{
@Id
private Long id = null;
@Column(name="known1")
private Long known1 = null;
}
Я планирую смоделировать таблицу параметров как класс, а затем разрешить каждому из моих классов иметь список параметров.
Я не уверен, как мне следует сопоставить этот объект List, чтобы детали записывались в одну и ту же таблицу.
@Entity
@Table(name="x")
public class X
{
// @Column(name="x",class="X") ??????????
List<Parameter> dynamicColumns = null;
}
Полагаю, я могу использовать собственную стратегию именования, чтобы правильно определить имя столбца для динамического поля. Это
тип картирования вообще возможен?