tutorial - orm java se




Come usare `setResultTransformer` dopo Hibernate 5.2? (2)

Voglio usare query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP) per ottenere una List<Map> . Ma ho avuto un'eccezione:

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

Non riesco a trovare la classe implementata di org.hibernate.query.Query . Il metodo setResultTransformer è in org.hibernate.Query .

E perché org.hibernate.Query è deprecato?


ResultTransformer viene fornito con una definizione legacy che non segue la sintassi dell'interfaccia funzionale. Quindi, non possiamo usare un lambda in questo esempio. Hibernate 6.0 mira a risolvere questo problema, ecco perché Hibernate ORM 5.2 ResultTransformer è deprecato. Tuttavia, verrà fornita un'alternativa, quindi il concetto di cui stiamo discutendo in questo articolo rimarrà fermo anche in Hibernate 6.

https://vladmihalcea.com/why-you-should-use-the-hibernate-resulttransformer-to-customize-result-set-mappings/


Non utilizzare session.createQuery(hql,transformerClass); se selezioni più articoli nella tua query, usa invece il vecchio metodo deprecato.





hibernate