2017-08-02 6 views
1

hibernate 4.Xバージョンでは例でクエリを実行しましたが、5.2で実行しようとしたときにsession.createCriteria()が推奨されなくなりました。ここでHibernate 5.2での例題による照会

 Session session = getSession(); 
     Admin admin = new Admin(); 
     admin.setEmail(email); 
     admin.setPasswd(password); 
     Example adminExample = Example.create(admin); 
     Criteria cq = session.createCriteria(Admin.class).add(adminExample); 

は、私はJPAの仕様として5.2 criteriaQueryのために(新しいリリースのメソッドを廃止する理由の1つ)で行う方法です。だから私の質問は、私は5.2の例でクエリを使用する方法であり、より詳細

 Session session = getSession(); 

     CriteriaBuilder builder = session.getCriteriaBuilder(); 
     CriteriaQuery<Admin> criteria = builder.createQuery(Admin.class); 
     Root<Admin> adminRoot = criteria.from(Admin.class); 
     criteria.select(adminRoot); 
     Predicate adminPre = builder.and(builder.equal(adminRoot.get("email"), email), 
       builder.equal(adminRoot.get("password"), password)); 
     criteria.where(adminPre); 
     List<Admin> adminList = session.createQuery(criteria).getResultList(); 

ためhereを参照してください?

+0

従来のhttp://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#criteriaではなく、新しい基準を使用してください – jklee

+0

@jklee私はすでに新しいコードの ' Criteria'を使用していて、かなりうまく動作していますが、サンプルでQueryを使用する方法がわかりません。 –

答えて

2

JPA Criteriaは例によるクエリをサポートしていないため、これらのクエリを明示的な述語に書き換える必要があります。

+0

もう1つのこと、 'session.createCriteria()'が廃止予定の場合、なぜあなたは新しい文書のどこでもそれを使用しましたか? –

+0

どういう意味ですか?私にいくつかのリンクを教えてください。 –

+0

Hmm .. http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#criteriaここを参照してください。最初の段階では、「Criteria APIは非推奨とみなされます」 29章では**この付録では廃止予定とみなされるべき従来のHibernateのorg.hibernate.Criteria APIを扱っていますが、依然として扱いにくい方法を詳述しています。 –

関連する問題