搜索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应该就能解决了;