Почему консоль Hibernate ничего у меня не выдаёт при запросах (в Intellij IDEA)?

128
27 марта 2021, 15:20

При запросах в консоли ничего не выдаёт.

Вот мой файл конфигурации hibernate:

    <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.url">jdbc:postgresql://....</property>
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <!--<property name="hibernate.hbm2ddl.auto">update</property>-->
    <property name="connection.username">user</property>
    <property name="connection.password">password</property>
    <property name="show_sql">true</property>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <mapping class="ru.myfirm.entity.RequestEntity"/>

  </session-factory>
</hibernate-configuration>

Ошибок никаких не выдаёт. Может что ещё показать? Может что-то в настройках не то?

Answer 1

Проверь правильность настройки. Пример настройки:

1 - Если используешь Maven, то создешь файл hibernate.cfg.xml в папке resources.

<!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>
        <!-- JDBC Database connection settings -->
        <property name="connection.driver_class">org.postgresql.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/SERVER?useSSL=false</property>
        <property name="connection.username">USERNAME</property>
        <property name="connection.password">PASSWORD</property>
        <property name="connection.provider_class">org.hibernate.hikaricp.internal.HikariCPConnectionProvider</property>
        <property name="hibernate.hikari.connectionTimeout">20000</property>
        <property name="hibernate.hikari.minimumIdle">10</property>
        <property name="hibernate.hikari.maximumPoolSize">20</property>
        <property name="hibernate.hikari.idleTimeout">300000</property>

        <!-- JDBC connection pool settings ... using built-in test pool -->
        <property name="connection.pool_size">1</property>
        <!-- Select our SQL dialect -->
        <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <!-- Echo the SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Set the current session context -->
        <property name="current_session_context_class">thread</property>
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create</property>
        <!--<property name="hbm2ddl.auto">create-drop</property>-->
        <!--<property name="hbm2ddl.auto">update</property>-->
        <!--<property name="hbm2ddl.auto">validate</property>-->
        <!-- dbcp connection pool configuration -->
        <property name="hibernate.dbcp.initialSize">5</property>
        <property name="hibernate.dbcp.maxTotal">20</property>
        <property name="hibernate.dbcp.maxIdle">10</property>
        <property name="hibernate.dbcp.minIdle">5</property>
        <property name="hibernate.dbcp.maxWaitMillis">-1</property>

        <mapping class="entities.Example1" />
        <mapping class="entities.Example2" />
        <mapping class="entities.Example3" />
        <mapping class="entities.Example4" />

    </session-factory>
</hibernate-configuration>

2 - у меня Connection provider настроен как hikariCp-hibernate. В этом случае добавь пару зависимостей в pom.xml:

        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.2.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-hikaricp</artifactId>
            <version>5.4.2.Final</version>
        </dependency>
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.8.1</version>
        </dependency>

3 - создай HibernateUtil.java:

``xml import org.hibernate.SessionFactory; import org.hibernate.boot.Metadata; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

public class HibernateUtil { private static StandardServiceRegistry registry; private static SessionFactory sessionFactory;

public static SessionFactory getSessionFactory() {
    if (sessionFactory == null) {
        try {
            // Create registry
            registry = new StandardServiceRegistryBuilder().configure().build();
            // Create MetadataSources
            MetadataSources sources = new MetadataSources(registry);
            // Create Metadata
            Metadata metadata = sources.getMetadataBuilder().build();
            // Create SessionFactory
            sessionFactory = metadata.getSessionFactoryBuilder().build();
        } catch (Exception e) {
            e.printStackTrace();
            if (registry != null) {
                StandardServiceRegistryBuilder.destroy(registry);
            }
        }
    }
    return sessionFactory;
}

}


4 - напиши проверку. Как варик:
```java
import config.HibernateUtil;
import entities.Servers;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class Test_1 {

    private static Transaction transaction = null;
    private static Session session = null;
    private static Servers servers = null;
    public static void main(String[] args) {
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            transaction = session.beginTransaction();
            session.saveOrUpdate(servers);
            transaction.commit();
            session.clear();
            session.close();
        } catch (Exception e) {
            if (transaction != null) {
                transaction.rollback();
            }
            e.printStackTrace();
        }
    }
}
READ ALSO
Tomcat - Переполняется пул из ожидающих потоков на сервере

Tomcat - Переполняется пул из ожидающих потоков на сервере

Вопрос задавался уже несколько раз на англоязычной версии, но ответа я так и не нашелПроблема в том, что в определенный момент tomcat начинает...

125
Как привязать exception из сервлета к jsp?

Как привязать exception из сервлета к jsp?

Пишу страничку логина по гайду

132
Как разложить сущность в несколько таблиц с использованием spring-batch?

Как разложить сущность в несколько таблиц с использованием spring-batch?

Использую spring-batch чтобы разложить сущность по табличкамВозник вопрос в написании writer'а

138