Вызывается: org. postgresql .util.PSQLException: база данных не существует при попытке автоматического создания базы данных - PullRequest
0 голосов
/ 14 января 2020

У меня есть это hibernate.cfg.xml:

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">org.postgresql.Driver</property>

        <property name="connection.url">
            jdbc:postgresql://localhost/DatabaseName?createDatabaseIfNotExist=true
                &amp;useUnicode=yes&amp;characterEncoding=UTF-8
        </property>

        <property name="connection.username">postgres</property>
        <property name="connection.password">password</property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">5</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>
        <!-- Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCachingRegionFactory</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>
        <mapping class="com.main.User"/>
    </session-factory>
</hibernate-configuration>

, которое должно создать обе таблицы (для сущности User и базы данных DatabaseName). Тем не менее, он не создает базу данных и завершается с ошибкой в ​​этой строке:

sessionFactory = configuration.buildSessionFactory();

Что я могу сделать, чтобы она автоматически создавала базу данных с именем DatabaseName?

1 Ответ

1 голос
/ 15 января 2020

Для создания базы данных, которую вы должны создать, вручную вы можете использовать IDE для этого или cmd для создания вашей БД

И для создания таблиц вы можете использовать create вместо обновления

 <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>

Это создаст схему, а затем вы будете использовать обновление для следующего запуска, если вы не хотите воссоздавать ваши таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...