2012-11-15 101 views
1

在Hibernate而突出:休眠投影爲映射屬性

Criteria criteria = session.createCriteria(XYZ.class) 
        .add(Restrictions.eq("XYDId", 1)).add(Restrictions.eq("active", Boolean.TRUE)); 
criteria.setProjection(Projections.property("abc.id").as("id")); 
      criteria.setProjection(Projections.property("abc.timezoneKey").as("TIMEZONEKEY")); 
      criteria.setResultTransformer(Transformers.aliasToBean(abc.class)); 

拋出異常

could not resolve property: abc.timezoneKey of: com.locaid.gfe.common.entities.XYZ

雖然在XYZ實體ABC是存在proerty和ABC timezoneKey存在作爲屬性。任何人都可以幫助我獲得我所缺乏的東西。

+0

u能闡述了一點,我沒有什麼用 –

+0

感謝您的支持,我已經獲得國家.adding在投影列表中的所有投影一個很好的解決方案,然後設置在標準投影列表。 –

回答

0

您需要添加一個aliasabc財產

Criteria criteria = session.createCriteria(XYZ.class, "xyz").createAlias("xyz.abc", "xabc").add(Restrictions.eq("xyz.XYDId", 1)).add(Restrictions.eq("xyz.active", Boolean.TRUE)); 
criteria.setProjection(Projections.property("xabc.id").as("id")); 
criteria.setProjection(Projections.property("xabc.timezoneKey").as("TIMEZONEKEY")); 
criteria.setResultTransformer(Transformers.aliasToBean(abc.class)); 

你也可以看看this

+0

感謝您的支持,我已經得到了一個很好的解決方案。在投影列表中添加所有投影,然後在標準中設置投影列表。 –