Быстрый старт проекта Wildfly Greeter
'greeter'
быстрый проект в WildFly 8, демонстрирующий базовую базу данных гибернации и JPA-функциональность в качестве учебного пособия. В проекте я не понимаю, когда и как создается база данных "USERS" в базе данных H2. Это два соответствующих файла для создания и настройки базы данных:
- META-INF / persistence.xml
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="primary">
<!-- If you are running in a production environment, add a managed
data source, this example data source is just for development and testing! -->
<!-- The datasource is deployed as WEB-INF/greeter-quickstart-ds.xml,
you can find it in the source at src/main/webapp/WEB-INF/greeter-quickstart-ds.xml -->
<jta-data-source>java:jboss/datasources/GreeterQuickstartDS</jta-data-source>
<properties>
<!-- Properties for Hibernate -->
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
</persistence>
- WEB-INF / привратник-Quickstart-ds.xml
<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<!-- The datasource is bound into JNDI at this location. We reference
this in META-INF/persistence.xml -->
<datasource jndi-name="java:jboss/datasources/GreeterQuickstartDS"
pool-name="greeter-quickstart" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:greeter-quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
</datasources>
/wildfly-greeter/src/main/resources/import.sql
INSERT INTO USERS (ID, USERNAME, FIRSTNAME, LASTNAME) VALUES (-1, 'jdoe', 'John', 'Doe');
INSERT INTO USERS (ID, USERNAME, FIRSTNAME, LASTNAME) VALUES (-2, 'emuster', 'Erika', 'Mustermann');
По умолчанию система баз данных H2 не поставляется с базой данных USERS, которая используется в демонстрационной версии. Так как же "ПОЛЬЗОВАТЕЛИ" создаются в этом демо-проекте? Благодарю.
2 ответа
База данных USERS автоматически обновляется при запуске проекта из-за следующего параметра в persistence.xml
:
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
База данных настраивается Hibernate во время развертывания. Чтобы построить схему базы данных, Hibernate просматривает все соответствующие файлы, не только XML-файлы, но и классы, чтобы получить необходимую информацию, и именно отсюда приходит таблица Users.
Вот точный код из greeter
Пример быстрого запуска, который отвечает за таблицу Users:
@Entity
// User is a keyword in some SQL dialects!
@Table(name="Users")
public class User {
... etc.
Так вот, они просто назвали его " Пользователи с множественным числом", чтобы избежать конфликтов с СУБД по вашему выбору.