Hallo zusammen,
ich habe eine Klasse HibernateConfiguration:
Diese liest meine hibernate.cfg.xml-Datei ein.
Die Mappingfiles füge ich mit Hilfe addResource-Methode in der Configuration ein.
Zu Testzwecken habe ich zur Zeit ein Mapping:
Das Mapping wird von Hibernate korrekt validiert und wird anscheinend auch der Configuration hinzugefügt. Beim Debuggen ist mir aufgefallen, dass die Tabelle für besagtes Mapping auch mit allen Spalten vorhanden ist nur habe ich folgendes Problem:
Wenn ich nun versuche ein Objekt über das Hibernatetemplate hinzuzufügen kommt folgende Exception:
Die sollte mir ja eigentlich sagen, dass die Tabelle nicht vorhanden ist. Wie gesagt ist diese aber in meiner Configuration vorhanden und ich frage mich ob ich die Hsqldb per Hand starten muss, damit diese auch praktisch vorhanden ist. Oder gibt es vllt etwas anderes, dass ich beachten muss.
Jemand eine Idee was ich tun kann ?
ich habe eine Klasse HibernateConfiguration:
Code:
private Configuration cfg;
public HibernateTemplate getHibernateTemplate() {
return new HibernateTemplate(cfg.buildSessionFactory(), true);
}
public HibernateConfiguration() {
cfg = new Configuration().configure("/de/shortys/myhome/api/persistence/Hibernate.cfg.xml");
}
public void addResource(String resource) throws MappingException {
cfg = cfg.addResource(resource);
System.out.println("Resource added: " + resource);
}
Diese liest meine hibernate.cfg.xml-Datei ein.
Code:
<!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 -->
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:file:database/MyHome;shutdown=true</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- Drop and re-create the database schema on startup
<property name="hbm2ddl.auto">update</property>-->
</session-factory>
</hibernate-configuration>
Die Mappingfiles füge ich mit Hilfe addResource-Methode in der Configuration ein.
Zu Testzwecken habe ich zur Zeit ein Mapping:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="de.shortys.myhome.spritmonitor.model.FuelFilling"
table="FUEL_FILLING">
<id name="key">
<column name="Key" />
</id>
<property name="dateAdded">
<column name="DateAdded" />
</property>
<property name="dateEdited">
<column name="DateEdited" />
</property>
<property name="dateFilled">
<column name="DateFilled" />
</property>
<property name="distance">
<column name="Distance" />
</property>
<property name="amount">
<column name="Amount" />
</property>
<property name="charges">
<column name="Charges" />
</property>
</class>
</hibernate-mapping>
Das Mapping wird von Hibernate korrekt validiert und wird anscheinend auch der Configuration hinzugefügt. Beim Debuggen ist mir aufgefallen, dass die Tabelle für besagtes Mapping auch mit allen Spalten vorhanden ist nur habe ich folgendes Problem:
Wenn ich nun versuche ein Objekt über das Hibernatetemplate hinzuzufügen kommt folgende Exception:
Code:
Caused by: java.sql.SQLException: Table not found in statement [insert into FUEL_FILLING (DateAdded, DateEdited, DateFilled, Distance, Amount, Charges, Key) values (?, ?, ?, ?, ?, ?, ?)]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:94)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87)
at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:222)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2224)
... 36 more
Die sollte mir ja eigentlich sagen, dass die Tabelle nicht vorhanden ist. Wie gesagt ist diese aber in meiner Configuration vorhanden und ich frage mich ob ich die Hsqldb per Hand starten muss, damit diese auch praktisch vorhanden ist. Oder gibt es vllt etwas anderes, dass ich beachten muss.
Jemand eine Idee was ich tun kann ?