# Hibernate und Derby



## Hardi82 (12. Dezember 2008)

Hallo Leute,

für eine kleine, private Desktopanwendung hatte ich mir gedacht, zur Datenspeicherung Derby und Hibernate zu verwenden. Somit kann die Anwendung "ohne" Systemvoraussetzungen (DB, BS) an Bekannte weitergereicht werden. Nun habe ich mir ein DB-Schema angelegt und auf Derby angepasst. Für die Integration in meine Anwendung (Spring, Swing, Hibernate & Derby) habe ich in der hibernate.cfg.xml folgenden Eintrag angelegt:


```
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
        <property name="hibernate.connection.url">jdbc:derby:directory:hbsoft;create=true;</property>
        <property name="hibernate.connection.username">user</property>
        <property name="hibernate.connection.password">psw</property>
        <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
	<property name="hibernate.hbm2ddl.auto">create</property>
	<property name="hibernate.query.substitutions">true 1, false 0</property>
	<property name="hibernate.connection.autocommit">true</property>
	<property name="hibernate.FlushMode">AUTO</property>		    
	<property name="hibernate.show_sql">true</property>
	<property name="hibernate.format_sql">true</property>

        <mapping resource="de/th/model/Person.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
```

Dazu noch ein Objekt-Mapping zu meiner Klasse Person:


```
<hibernate-mapping package="de.th.model">
  <class name="Person" table="hbsoft_person">
  	<id name="perid" type="integer" column="perid">
  	  <generator class="native"/>
  	</id>
  	<property name="firstname" type="string" column="firstname"/>
  	<property name="surname" type="string" column="surname"/>
  	<joined-subclass name="User" table="hbsoft_user">
  	  <key column="perid" />
	  <property name="sysname" type="string" column="sysname"/>
	  <property name="psw" type="string" column="psw"/>
	  <property name="lastlogin" type="date" column="lastlogin"/> 
  	</joined-subclass>	
  </class>
</hibernate-mapping>
```

Nun dachte ich, dass Hibernate durch das Statement "create=true" die Datenbank samt Tabellen anlegt. Nur scheint dies irgendwie nicht zu funktionieren. Laut Log wird zwar die DB angelegt und das Schema exportiert,


```
2359 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
2359 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
2906 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
```

aber die Tabellen nicht. Wenn ich anschließend über die Derbykonsole auf die Tabellen zugreifen möchte, 


```
select * from person; oder
select * from hbsoft.person;
```

sind diese nicht vorhanden. Weiß jemand vielleicht Rat, woran es liegen könnte bzw. wie ich Hibernate mit Derby zum laufen bekomme? Unter Google finden sich immer nur Einträge, wie man die Konfigurationsdatei anpasst. Das habe ich gemacht doch leider funktioniert es irgendwie nicht. 

Danke schonmal für das Lesen meines Problem.

Grüße, Hardie


----------



## zeja (15. Dezember 2008)

Das letzte mal als ich das Problem hatte, lag dass daran dass Derby zu neu war. Versuchs mal mit einer älteren Version.


----------

