Быстрый старт проекта Wildfly Greeter

'greeter' быстрый проект в WildFly 8, демонстрирующий базовую базу данных гибернации и JPA-функциональность в качестве учебного пособия. В проекте я не понимаю, когда и как создается база данных "USERS" в базе данных H2. Это два соответствующих файла для создания и настройки базы данных:

  1. 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>
  1. 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>
  1. /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.

Так вот, они просто назвали его " Пользователи с множественным числом", чтобы избежать конфликтов с СУБД по вашему выбору.

Другие вопросы по тегам