首页 文章

Hibernate Criteria查询问题与投影和限制

提问于
浏览
9

我试图使用hibernate条件查询从表中选择列

Criteria cr = session.createCriteria(OfferCashbackMaster.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("offerCode"), "offerCode")
      .add(Projections.property("txnType"), "txnType")
      .add(Projections.property("validTo"), "validTo")
      .add(Projections.property("off_Discription"), "off_Discription"))
    .setResultTransformer(Transformers.aliasToBean(OfferCashbackMaster.class))
    .add(Restrictions.and(Restrictions.eq("aggregatorId", aggregatorId),
                           Restrictions.eq("txnType", txnType)));

投影中提到的名称 txnType 与限制发生冲突 .

给我以下错误

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'

我们如何解决这个问题?

2 回答

  • 5

    如果您正在使用Hibernate 3.2.6, 3.0.5, 3.5.5, 3.6.0.Beta3 ,那么是时候迁移到更新版本的Hibernate了 .

    报告错误: Criteria Query Issue with Projection and restriction

    链接:https://hibernate.atlassian.net/browse/HHH-3371

    影响版本: 3.2.6 3.0.5, 3.5.5, 3.6.0.Beta3

    组件:查询标准

    修复版本:3.6.0.Beta4及以上版本 .

  • 5

    我相信你正在使用过时的hibernate版本 .

    这个问题已经解决并解决了很长时间:

    https://hibernate.atlassian.net/browse/HHH-817

    修正版: 3.6.0.Beta4

相关问题