2016-03-22 25 views
0

返信ありがとう:) Grails 2.4.4バージョンのような私のWebアプリケーション構成、Spring-core-4.0.7.RELEASEとともに休止状態の4.3.6最終バージョンです。Hibernateトランザクションをコミットできませんでした。 org.hibernate.TransactionException:トランザクションが正常に開始されませんでした。

実行がtx.commitに当たっているとき、私はここ

Session session2 = sessionFactory.getCurrentSession(); 
session2.persist(Obj); 
session2.flush(); 
Transaction tx = session2.getTransaction(); 
       log.debug("ITS CREATED??") 
       if(tx.isActive()) 
       { 
        log.debug("ITS ACTIVE") 
        if(!tx.wasCommitted()) 
        { 
         log.debug("NOT COMMITTED") 
         tx.commit(); 
        }else 
        { 
         log.debug(" COMMITTED") 
        } 
       }else 
       { 
        log.debug("NOT ACTIVE") 
       } 

のように行っておりますが()例外のこの種を投げています。

ここに何か不足していますか?私を案内してください。

例:

class MetaDataController 
{ 
def saveService; 

def save={ 

def returnParams = saveService.doSave(params); 
//Here returning to the controller, its giving an exception. 

} 
} 


class SaveService 
{ 
def transactional = true; 

    def doSave(def params) 
    { 
     def params; 
     Session session2 = sessionFactory.getCurrentSession(); 

     Metadata metaData = new MetaData(); 
     ///Object association 

     session2.persist(metaData); 
     session2.flush(); 
     Transaction tx = session2.getTransaction(); 
     if(!tx.wasCommitted()) 
     { 
      log.debug("NOT COMMITTED") 
      tx.commit(); 
     } 
     return params; 

    } 

} 
+0

上記コードは稼働中です。コントローラに返されたときに値をコミットした後、その理由を返す "例外[例外:org.springframework.transaction.TransactionSystemException:Hibernateトランザクションをコミットできませんでした、ネストされた例外はorg.hibernate.TransactionException:Transaction not successfully started]"エラーです。 –

+0

あなたは何をしようとしていますか? –

+0

複数のスレッドがgrailsコントローラと、grailサービス内のビジネスロジックにヒットしようとします。サービスから出る前に、私は現在のトランザクションをコミットしようとしていますが、コントローラに戻るときに例外がスローされます。 –

答えて

1

あなたはこのような単純なユースケースのためのセッションとの取引で周り台無しにする必要はありません。あなたはGrailsを使っています、覚えていますか?

class SaveService 
{ 
    def transactional = true; 

    def doSave(def params) 
    { 
     Metadata metaData = new MetaData() 
     metadata.save() 
     return params // I don't get this, but what the hell. 
    } 

} 
+0

貴重なご回答ありがとうございます。 –

関連する問題