2016-07-07 14 views
8

List<Map>'u almak için query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP)'u kullanmak istiyorum.Hazırda 5.2'den sonra "setResultTransformer" nasıl kullanılır?

java.lang.NoSuchMethodError: org.hibernate.query.Query.setResultTransformer(Lorg/hibernate/transform/ResultTransformer;)Lorg/hibernate/Query; 

Ben org.hibernate.query.Query arasında uygulanan sınıf bulamıyor: Ama bir istisna var. setResultTransformer yöntemi, org.hibernate.Query'dadır.

Neden org.hibernate.Query kullanımdan kaldırıldı?

+0

5.2.3.Final sürümünde, uygulama sınıfları NativeQueryImpl içinde, yine de kullanımdan kaldırılmıştır. Aynı zamanda, https://docs.jboss.org/hibernate/orm/5.2/javadocs/deprecated-list.html – justMe

cevap

1

ResultTransformer, İşlevsel Arabirim sözdizimini izlemeyen eski bir tanımla birlikte gelir. Bu nedenle, bu örnekte bir lambda kullanamayız. Hazırda bekletme 6.0, bu sorunun üstesinden gelmeyi amaçlamaktadır. Bu nedenle, Hazırda ORM 5.2 ResultTransformer'ın neden kaldırıldığının nedeni budur. Bununla birlikte, alternatif sağlanacaktır, bu yüzden bu makalede görüşüyorlar kavram bile hazırda içinde hala ayakta gidiyor 6. https://vladmihalcea.com/why-you-should-use-the-hibernate-resulttransformer-to-customize-result-set-mappings/

+0

'a dayandığımıza göre bir alternatif yok gibi görünüyor, çünkü ifadenizi kullanırsak hazırda bekletme hatası veriyor – bmtncy

0

Sorgunuzu birden çok öğe seçerseniz eski kullanın session.createQuery(hql,transformerClass); kullanmayın yerine kullanım dışı yöntem.

İlgili konular