Hallo Ich bin ziemlich neu in Hibernate und habe Probleme mit dem Collectionen un mit dem Lazy Fetching.
Mit Maven und den Hibernate Tools Plugin erzeuge ich mein Database access Modul, dieses Modul soll unabhängig von irgendwelchen Web Container sein, deswegen verwende ich in meine Hibernate Einstellungen (hibernate.cgf.xml) ein Thread Session Context und JDBC Transaction. Meine Hibernate EinstellungsDatei ist:
<hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <property name="current_session_context_class">thread</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydatabase</property> <property name="hibernate.connection.username">user</property> <property name="hibernate.connection.password">1234</property> <property name="hibernate.format_sql">true</property> <property name="hibernate.use_sql_comments">true</property> </session-factory> </hibernate-configuration>
In meinem DAO mache ich folgende Schritte:
tx = sessionFactory.getCurrentSession().beginTransaction(); query = sessionFactory.getCurrentSession().createQuery("from " + "table"); query.setMaxResults(maxResults); query.setFirstResult(firstRow); tx.commit();
Wenn tx.commit() durgeführt wird dann schliesst sich meine session und deswegen kann ich nacher nicht einen get von einer Collection machen. Ich will on demand fetching von Collectionen erreichen. Ich hab in anderen "Forums" gelesen das diese Technik mit Hibernate Listeners zu erreichen sei, nicht desto trotz finde ich keine Beispiele. Kann man on demand fetching von Collectionen in dieser Weise erreichen oder gibt es andere Möglichkeiten? Welche andere Möglichkeiten gibt es? Welche Lösung kann man in diesem Fall anwenden?
Vielen Dank.
|