Hibernate transaction qui n'est pas démarré avec succès

Considérer cette simple Hibernate scénario:

session = getHibernateSession();
tx = session.beginTransaction();
SomeObject o = (SomeObject) session.get(SomeObject.class, objectId);
tx.commit();

Ce code génère l'exception suivante:

org.hibernate.TransactionException: Transaction not successfully started
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100)
    at com.bigco.package.Clazz.getSomeData(Clazz.java:1234)

Ce qu'il se passe?

  • Êtes-vous également à l'aide d'un gestionnaire de transactions?
  • Je ne suis pas exactement sûr de ce que la configuration de l'est, mais en supposant que nous disposons d'un gestionnaire de transactions, cela affecte dit comportement?
  • J'ai lu que parfois la création manuelle d'une transaction comme vous avec un gestionnaire de transactions présent va l'amener à lever cette exception.
  • C'est vraiment une bonne question et dur à croire réponse. Pourquoi serait Hibernate validation de la transaction lorsqu'une entité est récupérée via get(...)? Je n'ai pas été en mesure de traquer les réponses à cette Hb documents encore. Est-ce parce que le reçois vérifie la transaction sous-jacente, puis l'utilise pour faire le SÉLECTIONNER, puis l'engage? J'aimerais voir beaucoup plus de réponse détaillée à cette question.
InformationsquelleAutor Yuval Adam | 2011-03-01