Hibernate CreateQuery ohne Result

delphiking1980

Bekanntes Mitglied
Hallo,

ich habe eine Apache Derby Datenbank

und dort eine Tabelle ,"Aufgabe" nun möchte ich diese Tabelle mit folgendem Code abfragen :

Java:
SessionFactory sessions = new Configuration().configure().buildSessionFactory();
Session session = sessions.openSession();
Transaction myTransaction = session.beginTransaction();
myTransaction=session.beginTransaction();
List result = session.createQuery("from Aufgabe").list();
myTransaction.commit();
System.out.println(result);
session.close();

nur leider bleibt meine Liste leer.

Meine Hibernate Konfiguration :
[XML]
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="hibernate.connection.url">jdbc:derby😀:/01_Java/07_Workspace_Juno/BOrg/database;create=true</property>
<property name="hibernate.connection.username">username</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Mapping files -->
<mapping resource="de/borg/database/entitys/Aufgabe.hbm.xml"/>
</session-factory>
</hibernate-configuration>
[/XML]

Mein Mapping,
(die Tabelle Aufgabe enthält mehr Spalten als nur ID nur das sollte erstmal reichen. Die Tabellen möchte ich mir später durch ANT erstellen lassen.)

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<!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.database.entitys.Aufgabe" table="Aufgabe">
<id type="int" column="id">
<generator class="native" />
</id>
<!-- <property name="beschreibung" column="beschreibung" type="String"/> -->
</class>
</hibernate-mapping>
[/XML]
 
Java:
SessionFactory sessions = new Configuration().configure().buildSessionFactory();
Session session = sessions.openSession();
Transaction myTransaction = session.beginTransaction();
myTransaction=session.beginTransaction();
List result = session.createQuery("from Aufgabe").list();
myTransaction.commit();
System.out.println(result);
session.close();


Muss du nicht in dem createQuery noch einen SELECT * vorher angeben?
 
etwas deutlicher wäre noch, nun tatsächlich mit Select,
Select count(*) from Aufgabe,
uniqueResult(), auszugeben,
wenn das 0 ist, dann ist wohl ziemlich sicher dass bei Hibernate alles klappt, aber eben die Tabelle als leer angenommen wird,

das ist ja immer möglich, hat jedenfalls nichts mit deinem Code/ deiner hibernate-configuration zu tun,
warum sollte die Tabelle nicht leer sein?
wie ist dazu der Stand der Fakten?

-----

solange du nur eine Abfrage stellst kannst du dir die Transaction eigentlich sparen,
aber du könntest ein Aufgabe-Objekt per Hibernate speichern, das wäre auch ein guter Test, dann müsste die Abfrage doch was liefern?
zur allgemeinen Frage, warum du vielleicht an anderer Stelle eine befüllte Tabelle siehst, muss das freilich nicht unbedingt etwas beitragen
 
Wenn ich mich zur Datenbank mit ij verbinde dann bekomme ich eine Zeile angezeigt. (es ist auch nur eine vorhanden)

Wenn ich jedoch mit meiner Anwendung darauf gehe bekomme ich mit Hibernate nix angezeigt jedoch mit einer JDBC Verbidnung und einem selbst gestricktem Statement bekomme ich meine Ausgabe bzw mein ResultSet.

Sehr komisch.
 
was kommt überhaupt an Ausgabe? eine leere Liste ist "[]",
wenn nichts kommt ist ja nicht mal zu vermuten, dass der Code überhaupt ausgeführt wird

bringt das SELECT count(*) die 0?
kannst du mit Transaction einfügen, falls das nicht ein noch unbekannter Schritt für dich ist?
wenn mit Transaction commit gespeichert, ist der Eintrag dann mit neuer Session im gleichen Programm noch da?
und wenn du das Programm neustartest wieder erstmal leer oder nicht?
im letzteren Fall wäre interessant was dann die anderen Tools anzeigen, auch JDBC nebenher

falls dir alle Mittel wie INSERT noch eher unbekannt sind, ist es natürlich schwer,
immer ungünstig wenn der Anfang nicht funktioniert

falls du aber schon etwas Wissen hast, wären mehr Tests hilfreich, statt nur Bedauern zu formulieren

falls sich nichts neues ergibt bleibt mir allerdings vielleicht auch nichts anderes übrig 😉,
eine richtige Idee habe ich nicht, kenne gerade immer diese komischen Datenbanken wenig

wobei:
Code:
<property name="hibernate.connection.url">jdbc:derby:D:/01_Java/07_Workspace_Juno/BOrg/database;create=true</property>
kann eigentlich das 'create=true' ein Problem sein, legt das eine neue Datenbank an?
 

Neue Themen


Zurück
Oben