0

I tried to run native sql query with resulttransformer (AliasToBeanResultTransformer), it gives error like below.

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.ozpas.ozentegre.entity.EntDevirlog cannot be cast to java.util.Map
    at org.hibernate.property.access.internal.PropertyAccessMapImpl$SetterImpl.set(PropertyAccessMapImpl.java:102)
    at org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:78)

By the way, my native sql query does not include all fields in the entity ( EntDevirlog ), there are only some fields in that entity. shall the query include all fields in the entity ?

as i understood, hibernate transforms result into a map object instead EntDevirlog entity. It uses PropertyAccessMapImpl. how can i solve this problem to get the result as a list ( arraylist ) ? thanks.

    Session session = HibernateUtilMikro.getSessionFactory().openSession();

    List<EntDevirlog> results = new ArrayList<EntDevirlog>();
    Transaction tx = null;

String sql =  "mynativequery";

SQLQuery query = session.createSQLQuery(sql);

query.setParameter("tarih", tarih);
query.setParameter("srmkodu", srmkodu);

query.setParameter("s1", EnumPanoislemtipleri.islem1.getValue());
query.setParameter("s2", EnumPanoislemtipleri.islem2.getValue());


query.setResultTransformer(new AliasToBeanResultTransformer(EntDevirlog.class));

results = query.list();
            tx.commit();
engtuncay
  • 867
  • 10
  • 29

1 Answers1

1

Just use the quotes for the aliases

"select firstName as \"firstName\", 
    lastName as \"lastName\" from Employee"

Read for a more deeply explanation here: mapping Hibernate query results to custom class?

Community
  • 1
  • 1
v.ladynev
  • 19,275
  • 8
  • 46
  • 67