我有两个对象:
User {
int id,
String name,
List<Status> statusList
}
Status {
int id,
int userId,
String name,
Date createDate
}
我已经将pojo类映射到两个.hbm文件中,在Status.hbm文件中,我说hibernate,我希望从DESC中的基础获取状态,按日期视图排序:
<set name="statuses" order-by="date desc">
<key>
<column name="userId" />
</key>
<one-to-many class="Status" />
</set>
现在我想选择一个用户列表,它已经选择了(f.e。“Created”或“Deleted”)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")
答案 0 :(得分:0)
您可以使用HQL编写此查询样式:
from User where statuses[0].name = 'Created'
我认为没有使用Criteria API的等效表单。