- 783 名前:デフォルトの名無しさん [2007/12/25(火) 14:20:30 ]
- HibernateのSessionで質問があります。
いま自分がヘルプでアサインされた案件が(Struts+)Spring+Hibernateなのですが、 DAOの作り方が以下のようになっています。 スーパークラス:Org.springframework.orm.hibernate3.support.HibernateDaoSupport 各業務のDAO:HibernateDaoSupportをextendsする。 OracleのXML DB SQL関数を使いたいという理由で、HQLもcriteriaでもなく 生SQL を使っている。 各業務DAOでは、以下のようなコードになっています。 例: public List getHogeTableEntity() { 〜 Session session = super.getSession(); SQLQuery query = (SQLQuery) session.getNamedQuery("...."); ScrollableResults sr = query.scroll(); 〜 } 質問1.: このメソッドの中で、sessin.close()が呼ばれていなかったり、ScrollableResults.close()も 呼ばれていないのですが、これはNGですよね? session には clear() というメソッドもありますが、close()とはどう違うのでしょうか? 質問2.: 上記のケースとは違いますが、似た質問です。 技術評論社のSpring入門なんかの本を見ると、以下のようなコード(例.p274)があります。 public List findPerson() { return getHibernateTemplate().find("from person"); } ここでは close() がよばれていませんが (そもそも org.springframework.orm.hibernate3.HibernateTemplate には close() がない) これはこれでいいのですよね?
|

|