Reputation: 1445
I am trying to get selected columns from a table using hibernate criteria query
Criteria cr = session.createCriteria(OfferCashbackMaster.class)
.setProjection(Projections.projectionList()
.add(Projections.property("txnType"), "txnType")
.add(Projections.property("off_Discription"), "off_Discription"))
.setResultTransformer(Transformers.aliasToBean(OfferCashbackMaster.class))
.add(Restrictions.and(Restrictions.eq("aggregatorId", aggregatorId),
Restrictions.eq("txnType", txnType)));
The name txnType
mentioned in projection is having a clash with restriction.
Giving me the following error
Hibernate:
select
this_.OFFER_CODE as y0_,
this_.TXN_TYPE as y1_,
this_.VALID_TO as y2_,
this_.OFFER_DISCRIPTION as y3_
from OFFER_CASHBACK_MASTER this_
where
(this_.AGGREGATOR_ID=? and y1_=?)
2018-02-25/15:42:41.756 WARN: util.JDBCExceptionReporter -
SQL Error: 1054, SQLState: 42S22
2018-02-25/15:42:41.757 ERROR: util.JDBCExceptionReporter -
Unknown column 'y1_' in 'where clause'
How can we solve this issue?
Upvotes: 10
Views: 1788
Reputation: 2308
If you are using Hibernate 3.2.6, 3.0.5, 3.5.5, 3.6.0.Beta3
then it's time for migrating to newer version of Hibernate.
Reported bug: Criteria Query Issue with Projection and restriction
Link: https://hibernate.atlassian.net/browse/HHH-3371
Affects Version/s: 3.2.6 3.0.5, 3.5.5, 3.6.0.Beta3
Component/s: query-criteria
Fix Version: 3.6.0.Beta4 and above.
Upvotes: 5
Reputation: 18235
I believe you're using the outdated version of hibernate.
The issue is addressed and resolved for a long time:
https://hibernate.atlassian.net/browse/HHH-817
Fixed version: 3.6.0.Beta4
Upvotes: 5