2012-11-15 103 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

感谢您的支持,我已经得到了一个很好的解决方案。在投影列表中添加所有投影,然后在标准中设置投影列表。 –