- 790 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 17:42:16 ]
- みなさんレスどうもありがとうございます。
ORMapper は iBatis しか使ったことがなかったので Hibernate は初めてなのですが、とても参考になりました! >>785 clear() の役割はわかりました。 たしかに Hibernate にはその特徴として 「永続化コンテキスト」というのがあるが、 そのキャッシュを破棄するということですね。 >>786-788 Spring の HibernateTemplate と組み合わせる場合は、Spring のなかで Session が管理されているので、プログラマは意識しなくてよいというのも理解しました。 自分が理解した仕組み: >>787 のように Spring AOP を使っていることが前提となるが、 1.context.xml で、transactionManager や、Transaction 管理させるAOPの設定をしておく 2.AOPで、たとえば update* というメソッドを AOP の範囲と設定しておく 3.update*() に処理が移ると、Session が確保される(Commons DBCP などを使っている場合、pool からひとつとってくる) 4.getHibernateTemplate().find() すると、内部で 3. で得たSession に対し DB アクセスが行われる (ThreadLocal 経由で DAO に Session が渡されるのかな) 5.update*() が終わると、トランザクションが commit され、session も close() される。 Spring のソースをDLして見てみましたが、>>786 で示していただいたソースは、 HibernateTemplate#find(String, Object[]) と同じものですね。
|

|