Невозможно получить свойство, используя критерии и проекцию - PullRequest
0 голосов
/ 16 сентября 2011
      <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 всегда равен нулю.Кто-нибудь может помочь в этом?

1 Ответ

0 голосов
/ 18 сентября 2011

Это произошло из-за того, что вы не имеете отношения между сущностью-участником и этим. Если вы не хотите получать отношения с помощью 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...