String hql = "select hr from HrExamResult hr where hr.idno='"+no+"'";数据库有2条记录,但只能查出一条,我设置了复合主键,怎么回事啊? <<hibernate-mapping>
<class name="com.jp.model.exam.HrExamResult" table="hr_examresult">

 <composite-id>              <key-property name="idno" column="idno"  type="java.lang.String"/>
              <key-property name="academicExamDate"  column="academic_exam_date" type="java.lang.String"/>
                                 </composite-id>
    

<property name="certificateNo" type="java.lang.String" update="true"
insert="true" column="certificate_no" />

<property name="examno" type="java.lang.String" update="true"
insert="true" column="examno" />



</class></hibernate-mapping>     
public class HrExamResult implements java.io.Serializable 
{
public String idno; //身份证件号
public String name; //姓名
public String certificateNo;//证书号
public String examno;//准考证号

  public   boolean  equals(Object obj) {          if (obj  ==   this ) {              return   true ;         }          if ( ! (obj  instanceof  HrExamResult)) {              return   false ;         }                  HrExamResult user  =  (HrExamResult) obj;          return   new  EqualsBuilder()                  .append(this.idno,user.getIdno())                  .append(this.academicExamDate, user.getAcademicExamDate())                  .isEquals();
    }

 public int hashCode() {         return new HashCodeBuilder()                  .append(this.idno)                  .append(this.academicExamDate)                  .toHashCode();     }  
public String getIdno()
{
return idno;
}
public void setIdno(String idno)
{
this.idno = idno;
}
public String getCertificateNo()
{
return certificateNo;
}
public void setCertificateNo(String certificateNo)
{
this.certificateNo = certificateNo;
}
public String getExamno()
{
return examno;
}
public void setExamno(String examno)
{
this.examno = examno;
}

public String getAcademicExamDate()
{
return academicExamDate;
}
public void setAcademicExamDate(String academicExamDate)
{
this.academicExamDate = academicExamDate;
}



}

解决方案 »

  1.   

     <composite-id>
    你的这样叫复合主键配置???
    参考
    <composite-id name="id" class="com.vo1.PkeyId"> 
                <key-property name="sid" type="java.lang.Integer"> 
                    <column name="sid" /> 
                </key-property> 
                <key-property name="bid" type="java.lang.Integer"> 
                    <column name="bid" /> 
                </key-property> 
            </composite-id> 
      

  2.   

    一个联合主键写个类
     String hql = "select hr from HrExamResult hr where hr.id.sid='"+no+"'";
      

  3.   

    String hql = "select hr from HrExamResult hr where hr.id.idno='"+no+"'"; 
      

  4.   

    你的建一个联合主键类
    <composite-id name="id" class="net.csdn.UsersPK"> 
    查询的时候就可以根据id.sid=''  chaxun le
      

  5.   

    String hql = "select hr from HrExamResult hr where hr.id.idno='"+no+"'"; 
    这种应该可以啊顶下