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