1

春の MVC プロジェクトに DAO サービス レイヤーがありません。コントローラーで、基準クエリを作成したいと考えています。このためには、「createCriteria(myClass.class)」を呼び出すためのセッション オブジェクトが必要です。

セッションオブジェクトを取得するにはどうすればよいですか?

「HibernateUtil.currentSession()」のような HibernateUtil クラスを使用している人を見ました。これを試しましたが、インポートを解決できません。ここで別の問題に対処するために、いくつかの関連コードを投稿しましたHibernate criteria queries - Query Conditions

この点に関して、誰かが何らかの形でガイダンスを提供してくれませんか、ありがとう。

4

4 に答える 4

1

HibernateUtil は、独自のニーズに応じて作成することになっているクラスです。対応するドキュメント セクションは次のとおりです。

于 2012-04-25T16:10:59.330 に答える
0

わかりました。親エンティティクラスで公開されているエンティティマネージャーを使用することで、問題は解決しました。私はpersonというクラスを持っていて、そこに次のような一時的なメソッドが配置されています

@Transient
public static Collection<?> searchResults(JsonJqgridSearchModel jsonJqgridSearchModel){
    HibernateEntityManager hem = Person.entityManager().unwrap(HibernateEntityManager.class);
    Session session = hem.getSession();
    Criteria criteria = session.createCriteria(Person.class);
    Iterator<JqgridSearchCriteria> iterator = jsonJqgridSearchModel.rules.iterator();
        while(iterator.hasNext()){  
            criteria.add(iterator.next().getRestriction());
        }
    return criteria.list();     
}

主なことは、HibernateEntityManagerとセッションがどのように取得されたかです。これが誰かを助けてくれることを願っています。

于 2012-05-10T18:50:13.650 に答える
0

dispatcher-servlet.xml を見てみましょう。セッション (Hibernate)、tx マネージャーは、後でアクセスできるようにコンテキストでセットアップされます。古い 2.5 の例 .. http://static.springsource.org/spring/docs/2.5.x/reference/orm.html

于 2012-04-25T16:18:15.457 に答える
0

HibernateUtilHibernate チュートリアルのクラスです。実用ではありません。チュートリアル以外には使用しないでください。すでに Spring を使用している場合、Spring には優れた Hibernate 統合があります。最初から正しい方法で行うだけです。

于 2012-04-25T16:18:44.790 に答える