Это зависит от используемой вами реализации JPA.
С Hibernate вы можете указать 'create
' или 'update
' в свойствах hibernate.hbm2ddl.auto
в persistence.xml
:
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
<persistence-unit name="yourPersistenceUnit" transaction-type="JTA">
<description>Your Persistence Unit</description>
<jta-data-source>java:/DefaultDS</jta-data-source>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.transaction.flush_before_completion" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
</properties>
</persistence-unit>
</persistence>
Возможные значения для hibernate.hbm2ddl.auto
свойства:
create
: создавать таблицы и индексы базы данных при запуске
create-drop
: создавать таблицы и индексы базы данных при запуске и удалять при завершении работы
update
: при запуске приложения проверьте схему базы данных и при необходимости обновите ее, добавив отсутствующие таблицы и столбцы
validate
: при запуске приложения проверяется схема базы данных и происходит сбой при отсутствии какой-либо таблицы или столбца.