Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > как создать пустую базу derby из 3 таблиц


Автор: Swatch 16.1.2008, 09:29
Подскажите, пожалуйста, как создать пустую базу из 3-х таблиц с помощью хибернейт?

есть файлы маппинга для таблиц.вот такие:
1:
Код

<?xml version="1.0"?>
<!--
  ~ Copyright (c) 2007, Acorah Software Products Ltd. All Rights Reserved.
  -->

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.company.rs_blog.server.data.author" table="author" lazy="false">
        <id name="id">
            <generator class="native"/>
        </id>

        <property name="name"/>
    </class>
</hibernate-mapping>


2:
Код

<?xml version="1.0"?>
<!--
  ~ Copyright (c) 2007, Acorah Software Products Ltd. All Rights Reserved.
  -->

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.company.rs_blog.server.data.category" table="category" lazy="false">
        <id name="id">
            <generator class="native"/>
        </id>

        <property name="title"/>
    </class>
</hibernate-mapping>


3:
Код

<?xml version="1.0"?>
<!--
  ~ Copyright (c) 2007, Acorah Software Products Ltd. All Rights Reserved.
  -->

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.company.rs_blog.server.data.message" table="message" lazy="false">
        <id name="id">
            <generator class="native"/>
        </id>

        <many-to-one name="author_id" class="com.company.rs_blog.server.data.author"></many-to-one>
        <many-to-one name="category_id" class="com.company.rs_blog.server.data.category"></many-to-one>
        <property name="file" not-null="false" length="5242880"/>
    </class>
</hibernate-mapping>


Есть файлик конфигурации хибернейт:
Код

<?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>
    <!-- Database connection settings -->
    <!-- this path set in HibernateUtil class -->
    
    <property name="connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
    <property name="connection.username"></property>
    <property name="connection.password"></property>
    
    <property name="hibernate.connection.useUnicode">true</property>
    <property name="hibernate.connection.charSet">UTF-8</property>
    
    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>
    <!-- SQL dialect -->
    <property name="dialect">org.hibernate.dialect.DerbyDialect</property> 
    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>
    <!-- Disable the second-level cache -->
    <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>     <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">false</property>
    <!-- Drop and re-create the database schema on startup -->
    <property name="hbm2ddl.auto">create</property>
    
      <mapping resource="com/company/rs_blog/server/data/author.hbm.xml"/>
      <mapping resource="com/company/rs_blog/server/data/category.hbm.xml"/>
      <mapping resource="com/company/rs_blog/server/data/message.hbm.xml"/>

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


есть файлик HibernateUtil, в котором прописано след.-ее:
Код

static {
        // Creating Path to database directory if it is not exists
        String dbPath = javax.swing.filechooser.FileSystemView.getFileSystemView().getDefaultDirectory() + "/RS_Blog/RS_BlogDatabase";
                
        Configuration conf = new Configuration();
        conf.configure("hibernate.cfg.xml");
        conf.setProperty("hibernate.connection.url", "jdbc:derby:" + dbPath + ";create=true");
        conf.setProperty("connection.url", "jdbc:derby:" + dbPath + ";create=true");
        sessionFactory = conf.buildSessionFactory();
    }
    
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }


а в методе мэйн программы написано:
Код

        HibernateUtil.getSessionFactory();


Но, непонятно почему, ничего не создается. пишется ошибка:
Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
        at com.company.rs_blog.server.database.HibernateUtil.<clinit>(HibernateUtil.java:67)

на строчку Configuration conf = new Configuration();

Кто-нибудь, подскажите, в чем дело?!  smile 
И как создать пустую базу???  smile 

Автор: batigoal 16.1.2008, 10:23
Библиотеки какие-то не подключены (предположительно, dom4j).

Автор: Swatch 16.1.2008, 10:40
Урра, урра!!! спасибо огромное!!! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)