2011-09-16 15 views
0
 <id name="id" type="java.lang.Long"> 
      <column name="MBR_ATR_ID"/> 
      <generator class="sequence"> 
       <param name="sequence">ESPMB.MBR_ATR_ID_SEQ</param> 
      </generator> 
     </id> 

     <property name="memberId" type="long"> 
      <column name="MBR_ID" length="18"/> 
     </property> 
     <property name="customerId" type="long"> 
      <column name="CUST_ID" length="18"/> 
     </property> 
     <property name="eligibilitySourceSystem" type="string"> 
      <column name="ELIG_SRC_SYS" length="20" not-null="true"/> 
     </property> 

above HBM file belongs to MemberAttribute.hbm file and memberId is foreign key and it is primary key in Member.hbm file. 

Projection projection = Projections.projectionList() 
     .add(Property.forName("memberId")) 
     .add(Property.forName("customerId")); 
memberAttributeCriteria.setProjection(projection); 
List<Object> results = memberAttributeCriteria.list(); 
Iterator iter = results.iterator(); 
while (iter.hasNext()) 
     { 
      System.out.println("New object"); 
      Object[] obj = (Object[]) iter.next(); 
      for (int i=0;i<obj.length;i++) 
      { 
       System.out.println(obj[i]); // memberId always coming as null. 
      } 


     } 

MemberIdは常にnullになります。誰でもこれを助けることができますか?基準と投影を使用してプロパティを取得できません。

答えて

0

メンバーエンティティとこれとの間には関係がないために起こったことです。 hibernateを使用してリレーションを取得しない場合は、orm.xmlでこのリレーションを定義する必要があります。例えば

<one-to-one name="memberId" target-entity="path.to.entiny.Member"> 
    <join-column name="ID" referenced-column-name="id"/> 
</one-to-one> 
関連する問題