错误信息:Hibernate: select mouldbo0_.M_ID as col_0_0_, . as col_1_0_ from PO_MOULD mouldbo0_ left outer join PO_MOULD_NODEMSG mouldnodem1_ on mouldbo0_.M_ID=mouldnodem1_.NM_MOULD inner join PO_MOULD moulds2_ on mouldbo0_.M_ID=moulds2_.M_PARENTID where mouldbo0_.M_TYPE='00' and mouldbo0_.M_SPID=?ERROR  [http-8082-5]  org.hibernate.util.JDBCExceptionReporter       -  ORA-00936: 缺失表达式
代码:
public List<ZJBO> findZJBOBySubprojId(Long subprojId)throws BaseSysException{
List<ZJBO> result;
Map params = new HashMap();
String sql=" from MouldBO a left join a.mouldNodemsgs b where a.type='00'"+" and a.subproj.id=:subprojId ";
params.put("subprojId", subprojId); Query query = this.getSession().createQuery("select new com.gwm.po.biz.pm.proj.model.ZJBO(a,a.moulds) " + sql);
query.setProperties(params);
result=query.list();
return result;
}java类 省去了set get方法
package com.gwm.po.biz.pm.proj.model;
import java.util.Set;
public class ZJBO {
private MouldBO zjMould;
private Set<MouldBO> mjList;
private int count=0;
public ZJBO(MouldBO zjMould,Set<MouldBO> mjList){
this.zjMould=zjMould;
this.mjList=mjList;
if(mjList!=null && !mjList.isEmpty()){
count=mjList.size();
}
}
}
package com.gwm.po.biz.pm.proj.model;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import com.gwm.po.biz.pm.dc.model.DcBackBO;
import com.gwm.po.biz.pm.dc.model.DesignChangeBO;
public class MouldBO extends com.gwm.po.common.basebean.model.BaseModel
implements java.io.Serializable {
private SubProjBO subproj;
private String number;
private MouldBO parent;
private String name;
private String pno;
private String pcontext;
private String suppername;
private Long qty;
private String re;
private String status;
private AttachmentBO image; //图片
private String type;
private Set<MouldNodeMsgBO> mouldNodemsgs = new LinkedHashSet();//节点信息值
private Set<MouldBO> moulds =  new HashSet();//子模具信息
private Set<DesignChangeBO> dcset = new HashSet();//设变
private Set<DcBackBO> dcbackset = new HashSet();//回退设变
public static final String STATUS_SAVE = "00"; //保存
public static final String STATUS_PUB = "01"; //发布
public static final String STATUS_CLOSED = "02";//关闭
public static final String STATUS_REOPEN = "03"; //重启
public static final String STATUS_WAIT = "04"; //暂停
public static final String TYPE_ZJ = "00";
public static final String TYPE_MJ = "01";
private ProjLineBO projLine = new ProjLineBO(); //临时对象:工艺路线
public MouldBO(){
}
public MouldBO(Long id){
this.setId(id);
}
}
MouldBO.hbm.xml文件
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.gwm.po.biz.pm.proj.model.MouldBO" table="PO_MOULD" >
         <id name="id" type="java.lang.Long" column="M_ID">
<generator class="sequence">
<param name="sequence">PO_SEQ_MOULD</param>
</generator>
</id>
        
        <property name="number" type="java.lang.String">
            <column name="M_NUMBER" length="50" />
        </property>
        <property name="name" type="java.lang.String">
            <column name="M_NAME" length="50" />
        </property>
        <property name="pno" type="java.lang.String">
            <column name="M_PNO" length="50" />
        </property>
        <property name="pcontext" type="java.lang.String">
            <column name="M_PCONTEXT" length="50" />
        </property>
        <property name="suppername" type="java.lang.String">
            <column name="M_SUPPERNAME" length="50" />
        </property>
        <property name="qty" type="java.lang.Long">
            <column name="M_QTY" precision="22" scale="0" />
        </property>
        <property name="re" type="java.lang.String">
            <column name="M_REMARK" length="200" />
        </property>
        <property name="status" type="java.lang.String">
            <column name="M_STATUS" length="2" />
        </property>
        <!-- 图片 -->
        <many-to-one name="image" lazy="proxy"
class="com.gwm.po.biz.pm.proj.model.AttachmentBO"
column="M_FILEID" />
        
        <property name="type" type="java.lang.String">
            <column name="M_TYPE" length="2" />
        </property>
        <property name="createuser" type="java.lang.Long">
            <column name="CREATEUSER" precision="22" scale="0" />
        </property>
        <property name="createtime" type="java.util.Date">
            <column name="CREATETIME" length="7" />
        </property>
        <property name="updateuser" type="java.lang.Long">
            <column name="UPDATEUSER" precision="22" scale="0" />
        </property>
        <property name="updatetime" type="java.util.Date">
            <column name="UPDATETIME" />
        </property>
               
        <many-to-one name="parent" lazy="proxy"
class="com.gwm.po.biz.pm.proj.model.MouldBO"
column="M_PARENTID" />

<many-to-one name="subproj" lazy="proxy" class="com.gwm.po.biz.pm.proj.model.SubProjBO"
column="M_SPID"  />

<set name="mouldNodemsgs" inverse="false"  cascade="all">
            <key>
                <column name="NM_MOULD" precision="22" scale="0" />
            </key>
            <one-to-many class="com.gwm.po.biz.pm.proj.model.MouldNodeMsgBO" />
        </set>
        
        <set name="moulds" >
            <key>
                <column name="M_PARENTID" precision="22" scale="0" />
            </key>
            <one-to-many class="com.gwm.po.biz.pm.proj.model.MouldBO" />
        </set>
        
        <set name="dcset" inverse="true">
            <key>
                <column name="DC_MOULDID" precision="22" scale="0" />
            </key>
            <one-to-many class="com.gwm.po.biz.pm.dc.model.DesignChangeBO" />
        </set>
        
        <set name="dcbackset" inverse="true">
            <key>
                <column name="DCB_MOULDID" precision="22" scale="0" />
            </key>
            <one-to-many class="com.gwm.po.biz.pm.dc.model.DcBackBO" />
        </set>
        
        
    </class>
</hibernate-mapping>
hibernatejavaselect