Предположим, что поставщик JPA находится в спящем режиме. Предположим, что это не управление контейнером, но приложение управляется.Создать таблицу программно из аннотации объекта под JPA
Учитывая класс сущности и правильную аннотацию, можно ли создать таблицу программно, во время выполнения и только для этого класса? Говоря о времени выполнения, это означает, что класс сущности не указан в файле persistence.xml.
Теоретически это возможно, потому что мы можем вручную читать аннотации и генерировать SQL, а из единицы сохранения мы можем прочитать URL-адрес подключения к базе данных. Мой вопрос в том, есть ли способ сделать это, не дублируя много работы внутри спящего режима?
Я нашел в других вопросах о том, что можно использовать Persistence.createSchema
, но я не вижу, где указать класс.
Поскольку спецификация JPA достаточно ясно говорит о том, что вызов Persistence.generateSchema занимает блок персистентности, который бы ОПРЕДЕЛ, какие классы находятся в этом блоке. –
@NeilStockton, как я уже сказал, я хотел бы видеть, что класс сущности не определен в модуле сохранения, но указан во время выполнения. 'Persistence.generateSchema' принимает только имя единицы сохранения, как я могу добавить класс в блок персистентности во время выполнения? –