Hibernate und createQuery

Hallo,

ich moechte aus einer Tabelle (Postgres) ein paar Datensaetze rauslesen und in einer ArrayList speichern.

Zuerst wollte ich feststellen wie viele Datensaetze ueberhaupt in der Tabelle sind. dafuer hab ich folgendes benutzt (was ich so auf der jboss Seite gefunden habe) :

int counter =( (Integer) session.createQuery("select count(*) from Bottle").iterate().next() ).intValue());

Darauf bekomm ich dann folgende Exception (verkuerzt auf den eigentlichen Fehler )

Exception in thread "AWT-EventQueue-0" java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy11.createQuery(Unknown Source)

Ich hab zwar schon einiges im Netz gesucht, aber leider nichts wirklich hilfreiches gefunden (oder vielleicht hab ich auch einfach nur nicht verstanden).

Configuration config = new Configuration().configure();
config.addAnnotatedClass(Bottle.class);
config.configure("hibernate.cfg.xml");
 
new SchemaExport(config).create(false, false);
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(config.getProperties());
SessionFactory factory = config.buildSessionFactory(builder.build());
 
Session session = factory.getCurrentSession();
 
session.beginTransaction();

meine hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbc:postgresql://localhost:5432/xxxxx</property>
<property name="connection.username">xxxxxx</property>	
<property name="connection.password">xxxxxx</property>
 
<property name="connection.pool_size">2</property>
 
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
 
<property name="current_session_context_class">thread</property>
 
<property name="cache.provider_class">org.hibernate.cache.NoCachProvider</property>
 
<property name="show_sql">true</property>
 
<property name="hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>

Ein Hinweis im Netz war das current_session_context_class zu loeschen. Das hat der Compiler aber direkt mit einem

Exception in thread "AWT-EventQueue-0" org.hibernate.HibernateException: No CurrentSessionContext configured!

quittiert.

Vielleicht hat ja hier jemand eine rettende Idee ;-).

Welche Hibernate-Version nutzt du denn?

Ich bin etwas verwirrt, wie du deine SessionFactory erstellst. Ich arbeite mit noch mit Hibernate 3.2.5 und da kann man sich mit SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); die SessionFactory erzeugen, wenn man mit Annotations arbeitet.
Dazu müssen dann allerdings die gemappten Klassen in der hibernate.cfg.xml mit aufgeführt werden. <mapping class="package.pfad.Bottle"/>

Klappen denn andere Abfragen auf die gleiche Tabelle ohne Probleme?

ist die Exception zufällig noch länger, etwa wie in diesem Link?
http://thecafetechno.com/tutorials/hibernate/java-lang-reflect-undeclaredthrowableexception-in-hibernate-application/

wer kümmert sich um die Ausgabe der Exception, wenn dein Code (catch), wie sieht er aus?

wieviele Libraries verwendest du dazu, direkt für Hibernate gedacht und vielleicht noch andere nebenher?

Falls du mit Eclipse arbeitest: So weit ich weiß, muss die hibernate.cfg.xml ins src-Verzeichnis deines Projektes.
Dann wäre das richtig.

Vielleicht ein Tippfehler?