org.mise en veille prolongée.HibernateException: obtenir n'est pas valide sans transaction active

Je suis nouveau sur mise en veille prolongée.

  • Créé automatiquement hibernate.cfg.xml (Netbeans assistant)
  • Créé automatiquement HibernateUtil.java
  • Automatiquement créé classe POJO avec des annotations

Essayant d'obtenir un objet de base de données, mais l'obtention d'erreur:

Exception in thread "pool-1-thread-1" org.hibernate.HibernateException: get is not valid without active transaction
    at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:297)

obtenir un objet:

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
CallInfo ci = (CallInfo) session.get(CallInfo.class, ucid);

hibernate.cfg.xml

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sochi_feedback</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<property name="hibernate.current_session_context_class">thread</property>
Pouvez-vous s'il vous plaît ajouter le code qui appelle la méthode get ()??
CallInfo ci = (CallInfo) session.get(CallInfo.class, ucid);
Ajouter "Transaction tx = session.beginTransaction();" juste avant cette ligne et à la fin de vos opérations d'appel "tx.commit();"
merci, ça fonctionne
:Je ll ajouter comme une réponse alors...

OriginalL'auteur VextoR | 2012-03-15