2011-09-16 41 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始終爲空。任何人都可以幫忙嗎?無法使用標準和投影獲取屬性

回答

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>