1

私は休止状態 4 と Maven で作業しています:

ここに画像の説明を入力

したがって、問題は、サーバーを起動したときに、hibernate.cfg.xml を解析しているのを確認できず、テーブルがデータベースに作成されていないことです。

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
    <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.password">password</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost/mvnodb</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">admin</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="show_sql">true</property>
    <mapping class="tn.onp.mvno.model.Person" ></mapping>
    <mapping class="tn.onp.mvno.model.User" ></mapping>
    <mapping class="tn.onp.mvno.model.Call" ></mapping>
    <mapping class="tn.onp.mvno.model.User" ></mapping>
 </session-factory>

4

1 に答える 1

3

セットアップに応じて、Hibernate は通常、SessionFactory を構築することによって開始されます。ある種の Spring / JPA 統合を使用していない限り、Tomcat の起動時にこれは自動的には行われません。

次のリスナーを使用して、デプロイおよびアンデプロイ時に Hibernate を初期化して閉じることができます。

public class HibernateListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event) {
        HibernateUtil.getSessionFactory(); // Just call the static initializer of that class    
    }

    public void contextDestroyed(ServletContextEvent event) {
        HibernateUtil.getSessionFactory().close(); // Free all resources
    }
}

このクラスをクラスパスに、休止状態の jar (+ その依存関係_ およびデータベース ドライバー.

また、web.xml でリスナーを構成する必要があります。

<listener>
    <listener-class>org.mypackage.HibernateListener</listener-class>
</listener>

hibernate.cfg.xml ファイルに問題がある場合は、起動時に表示されるはずです。

于 2013-02-08T22:53:52.287 に答える