Существует несколько способов создания таблиц. Наиболее распространенным для производственного использования является то, что администратор БД (или разработчик в этой роли) создает схему базы данных (таблицы и т. Д.) Независимо от приложения.
Это типично, поскольку приложение затем моделирует данные в базе данных, и существует распространенное мнение, что база данных обычно переживает приложение.
Можно разрешить провайдеру JPA автоматически создавать схему. В аннотациях JPA есть даже несколько атрибутов, специально предназначенных для этой цели (например, атрибут nullable
JoinColumn
).
Активация этого происходит со специфическими для провайдера свойствами в файле persistence.xml. Например. hibernate.hbm2ddl.auto
для Hibernate (как используется в JBoss AS) и eclipselink.ddl-generation
для EclipseLink (как используется в GlassFish).
См. http://wiki.eclipse.org/EclipseLink/Examples/JPA/Migration/JBoss для некоторых примеров.
Вставка сущности в таблицу - это совсем другое. От вашего вопроса как-то складывается ощущение, что вы, возможно, не до конца понимаете разницу между этими двумя. Это происходит, например, через EntityManager#persist
, но я не уверен на 100%, если это то, что вы спрашиваете.