【发布时间】:2014-05-14 18:36:45
【问题描述】:
我有这段代码:
public String getEventsForCalendar(@RequestParam("userId") Long userId){
Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
try{
session.beginTransaction();
JSONArray eventsArray = new JSONArray((List<Event>)(session.createCriteria(Event.class)
.add(Restrictions.eq("ownerid", userId))
.list()));
User user = (User)session.createCriteria(User.class)
.add(Restrictions.eq("id", userId)).uniqueResult();
for (Event event: (List<Event>) session.createCriteria(Event.class)
.add(Restrictions.ne("ownerid", userId))
.list()){
if (event.getInvited().contains(user)){
eventsArray.put(new JSONObject(event));
}
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
return null;
}
首先,它应该找到用户创建的事件。接下来,在循环中它应该获取邀请用户的事件。每个事件都有一个名为受邀的列表,我想我必须遍历所有列表并检查用户是否在受邀列表中,但我可以做类似的事情吗?
List<Event> list = session(...)
.add(Restrictions.eq("invited", user);
换句话说,我可以从数据库中获取列表中包含对象的对象吗?如果有人回答我的问题,我将非常高兴 - 提前谢谢您。
【问题讨论】:
-
你所问的基本上是不可能的。您可以选择正确的查询并执行。使用休眠会话。 :)
标签: java spring hibernate list restrictions