读书人

org.hibernate.QueryException: coul

发布时间: 2011-11-26 22:52:26 作者: rapoo

问HIBERNATE一句查询语句
搜索PO出错
主表对BIDDINGRESULTS是一对多,BIDDINGRESULT对MATERIALDETAIL是多对一,INTRO是MATERIALDETAIL一个字段,查询语句怎么写
搜索条件:
//物料编号
if (StringUtil.isNotEmpty(materialSN)) {

//BiddingResult biddingResult=facade.getMaterialDetailService().getResult(materialSN);
hqlParamsMap.put( "materialSN ", materialSN);
hqlBuf.append( " and p.biddingResults.materialDetail.intro =:materialSN ");
}

org.hibernate.QueryException: could not resolve property: intro of: net.jite.sdzbgzpt.rubbishprocess.persistence.BiddingResult [ from net.jite.sdzbgzpt.purchaserInformation.persistence.PurchaserInformation p where 1=1 and p.biddingResults.materialDetail.intro =:materialSN]

[解决办法]
p.biddingResults.materialDetail.intro =:materialSN

从这里看你的表间关系有点问题吧;
p----》biddingResults
biddingResults----》materialDetail

首先检查映射是否正确;
再着,根据个人经验,好象hibernate的where语句对3层以上的关联解析存在问题,但在select里面就没问题;有点奇怪,有人解释下么?

你这个问题用left outer join应该就能解决了;

读书人网 >Java Web开发

热点推荐