Hibernate 3: keine Abfrage der PostgreSQL-Datenbank

Ich bin einrichten eines Projekts mit Hibernate 3.3.1 GA und PostgreSQL 8.3. Ich habe gerade eine Datenbank, in der ersten Tabelle eine Zeile Hinzugefügt und nun die Konfiguration Hibernate.

Aber auch die einfachste Abfrage:

Criteria criteria = session.createCriteria(Place.class);
List result = criteria.list();

konnte nicht ausgeführt werden (leere Liste zurückgegeben wird, obwohl es einen Datensatz in der Datenbank). Ich schaute auf die PostgreSQL logs zu sehen:

2008-09-17 22:52:59 CEST LOG:  connection received: host=192.168.175.1 port=2670  
2008-09-17 22:52:59 CEST LOG:  connection authorized: user=... database=...  
2008-09-17 22:53:00 CEST LOG:  execute <unnamed>: SHOW TRANSACTION ISOLATION LEVEL  
2008-09-17 22:53:02 CEST LOG:  could not receive data from client: Connection reset by peer  
2008-09-17 22:53:02 CEST LOG:  unexpected EOF on client connection  
2008-09-17 22:53:02 CEST LOG:  disconnection: session time: 0:00:03.011 user=... database=... host=192.168.175.1 port=2670

Schrieb ich ein einfaches Programm mit reinen JDBC zu Holen, die gleichen Daten und es funktionierte. PostgreSQL logs in diesem Fall wie folgt Aussehen (zum Vergleich):

2008-09-17 22:52:24 CEST LOG:  connection received: host=192.168.175.1 port=2668  
2008-09-17 22:52:24 CEST LOG:  connection authorized: user=... database=...  
2008-09-17 22:52:25 CEST LOG:  execute <unnamed>: SELECT * from PLACE  
2008-09-17 22:52:25 CEST LOG:  disconnection: session time: 0:00:00.456 user=... database=... host=192.168.175.1 port=2668  

Hibernate-debug-log zeigt keine Fehler. Wenn ich die Abfrage aufgelistet in den Protokollen:

15:17:01,859 DEBUG org.hibernate.loader.Entität.EntityLoader: static (Statisch) wählen Sie für Einheit com.Beispiel.Daten.Ort: wählen Sie place0_.ID als ID0_0_, place0_.NAMEN wie NAME0_0_, place0_.BREITENGRAD als LATITUDE0_0_, place0_.LÄNGENGRAD als LONGITUDE0_0_ von ORT place0_ wo place0_.ID=? 

und führen Sie es gegen die Datenbank, in der psql, es funktioniert (das bedeutet, dass Hibernate generiert hat, eine korrekte SQL).

Unten ist die Hibernate-Konfiguration:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.url">jdbc:postgresql://192.168.175.128:5433/...</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.username">...</property>
        <property name="hibernate.connection.password">...</property>
        <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.use_outer_join">true</property>

        <mapping resource="com/example/data/Place.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

...und die mapping-Datei:

<hibernate-mapping package="com.example.data">
    <class name="com.example.data.Place" table="PLACE">
        <id column="ID" name="id" type="java.lang.Integer">
            <generator class="native"/>
        </id>
        <property column="NAME" name="name" not-null="true" type="java.lang.String">
            <meta attribute="use-in-tostring">true</meta>
        </property>
        <property column="LATITUDE" name="latitude" not-null="true" type="java.lang.Float">
            <meta attribute="use-in-tostring">true</meta>
        </property>
        <property column="LONGITUDE" name="longitude" not-null="true" type="java.lang.Float">
            <meta attribute="use-in-tostring">true</meta>
        </property>
    </class>
</hibernate-mapping>

Googeln unexpected EOF log-Eintrag wurde nicht friutful. Irgendwelche Ideen, Gemeinschaft?

Wie es aussieht, das Problem ist wahrscheinlich in Ihrer Konfiguration. Kannst du es ohne Benutzername/Passwort?

InformationsquelleAutor Sergey Mikhanov | 2008-09-20

Schreibe einen Kommentar