4

Grails の withSession と現在の休止状態セッションの間で混乱しています。

私の質問は次のとおりです。クロージャでアクセスできるセッション オブジェクトは、現在の休止状態のセッション オブジェクトと同じですか?

以下のようなアクションを持つServiceを書きました。

def strangeBehavior(){

    Link.withSession { session->
        println "link current session " +  session.hashCode()
    }

    Task.withSession { session->
        println "task current session " +  session.hashCode()
    }

    Project.withSession { session->
        println "project current session " +  session.hashCode()
    }

    UserStory.withSession { session->
        println "user story current session " +  session.hashCode()
    }

    def ctx = AH.application.mainContext
        def sessionFactory = ctx.sessionFactory
        def tmp = sessionFactory.currentSession
        println " current session " +  tmp.hashCode()
    }
}

私にとって奇妙なのは、5 つの異なるハッシュ コードがあることです... 5 つのセッション オブジェクトを出力すると、同じ toString() の結果が表示されます。それは、それらが同じ内容を持っていると私に推測させます:

SessionImpl(PersistenceContext[entityKeys=[EntityKey[com.astek.agileFactory.Link#170]、EntityKey[com.astek.agileFactory.Project#9]]、collectionKeys=[Coll……]」

4

1 に答える 1