D
dcasdererwe
Gast
Hallo,
ich habe folgende Datenbankstruktur. Für jedes Gerät gibt es eine Tabelle in der die zugehörigen Messwerte geloggt werden:
Tabelle "GeräteID1"
---> Messwert 1, Datum 1, .....
---> Messwert 2, Datum2, ......
Tabelle "GeräteID2"
---> Messwert 1, Datum 1, .....
---> Messwert 2, Datum2, ......
Ich habe mir jetzt über reverse engineering das mappingfile und das POJO von der Tabelle "GeräteID1" erzeugt und kann nun Messwerte für Gerät 1 lesen und schreiben.
Wie kann ich das mappingfile / pojo verändern, um mit folgendem Aufruf Messwerte zu speichern?
Hibernate soll die Werte automatisch in die richtige Tabelle schreiben, falls Tabelle nicht vorhanden, soll sie nach dem Muster von "GeräteID1" erzeugt werden.
Einen zweiten Fehler habe ich noch bei der Anbindung an Postgres 9.1. Hibernate vergisst die Anführungszeichen um die Spaltennamen.
Meine hibernate.cfg.xml für Postgres:
Das erzeugte SQL-Statement:
Durch die fehlenden "" kommt es zur Fehlerausgabe:
VIELEN DANK FÜR EURE HILFE
ich habe folgende Datenbankstruktur. Für jedes Gerät gibt es eine Tabelle in der die zugehörigen Messwerte geloggt werden:
Tabelle "GeräteID1"
---> Messwert 1, Datum 1, .....
---> Messwert 2, Datum2, ......
Tabelle "GeräteID2"
---> Messwert 1, Datum 1, .....
---> Messwert 2, Datum2, ......
Ich habe mir jetzt über reverse engineering das mappingfile und das POJO von der Tabelle "GeräteID1" erzeugt und kann nun Messwerte für Gerät 1 lesen und schreiben.
Wie kann ich das mappingfile / pojo verändern, um mit folgendem Aufruf Messwerte zu speichern?
Java:
session.save(new Messwert ("GeräteID", "Messwert1234", new Date(), ........));
tx.commit();
Einen zweiten Fehler habe ich noch bei der Anbindung an Postgres 9.1. Hibernate vergisst die Anführungszeichen um die Spaltennamen.
Meine hibernate.cfg.xml für Postgres:
Java:
<?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.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/tabellenname</property>
<property name="hibernate.connection.username">xxxxxxx</property>
<property name="hibernate.connection.password">xxxxxxx</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<property name="show_sql">true</property>
<mapping resource="javaapplication1/Log.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Das erzeugte SQL-Statement:
Java:
insert into public.log (Messwert, Datum, ........) values (?,?,.......)
Durch die fehlenden "" kommt es zur Fehlerausgabe:
Java:
Schwerwiegend: FEHLER: Spalte »messwert« von Relation »log« existiert nicht
VIELEN DANK FÜR EURE HILFE