2014-02-18 81 views
0

元素我有2个对象:获取阵列别名通过索引

User { 
int id, 
String name, 
List<Status> statusList 
} 

Status { 
int id, 
int userId, 
String name, 
Date createDate 
} 

我已经绘制了POJO类两种.hbm文件,在,在Status.hbm文件我说冬眠,我想从基本状态中DESC按日期排序的观点:

<set name="statuses" order-by="date desc"> 
    <key> 
     <column name="userId" /> 
    </key> 
    <one-to-many class="Status" /> 
</set> 

现在我要选择的用户列表,至极已经选择(FE“创建”,或“删除”)在statusList财产第一要素。

我写:

sessionFactory.getCurrentSession().createCriteria(User.class) 
    .createAlias("statuses", "statusesAlias") 
    .add(Restrictions.eq("statusesAlias[0].name", "Created")).list(); 

但我在

.add(Restrictions.eq("statusesAlias[0].name", "Created")) 

所以得到一个错误,这是一个问题 - 我如何可以访问的对象的性质第一要素,当该属性的别名像

.createAlias("statuses", "statusesAlias") 
+1

什么样的错误? –

+0

java.lang.reflect.InvocationTargetException –

+1

然后,您需要将该方法与Hibernate进行映射... –

回答

0

你可以使用HQL编写这种风格的查询:

from User where statuses[0].name = 'Created' 

我不相信有使用Criteria API的等效表单。