Java 我可以为列表添加Restriction.eq()吗?
我有一段代码:Java 我可以为列表添加Restriction.eq()吗?,java,spring,hibernate,list,restrictions,Java,Spring,Hibernate,List,Restrictions,我有一段代码: public String getEventsForCalendar(@RequestParam("userId") Long userId){ Session session = NewHibernateUtil.getSessionFactory().getCurrentSession(); try{ session.beginTransaction(); JSONArray eventsArray = new JSONArray(
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;
}
公共字符串getEventsForCalendar(@RequestParam(“userId”)长userId){
会话会话=NewHibernateUtil.getSessionFactory().getCurrentSession();
试一试{
session.beginTransaction();
JSONArray eventsArray=新的JSONArray((列表)(session.createCriteria(Event.class))
.add(Restrictions.eq(“ownerid”,userId))
.list());
User=(User)session.createCriteria(User.class)
.add(Restrictions.eq(“id”,userId)).uniqueResult();
for(Event-Event:(List)session.createCriteria(Event.class)
.add(Restrictions.ne(“ownerid”,userId))
.list()){
if(event.getinvested().contains(user)){
eventsArray.put(新JSONObject(event));
}
}
}
捕获(例外e){
System.out.println(e.getMessage());
}
返回null;
}
首先,它应该查找用户创建的事件。接下来,在循环中,它应该获取用户被邀请的事件。每个事件都有一个名为invested的列表,我想我必须遍历所有列表并检查用户是否在invested列表中,但我可以这样做吗
List<Event> list = session(...)
.add(Restrictions.eq("invited", user);
List=会话(…)
.添加(限制.eq(“邀请”,用户);
换句话说,我可以从列表中包含对象的数据库对象中获取吗?如果有人回答我的问题,我将非常高兴-提前谢谢。您将使用Restrictions.In(“colName”,collection)方法 编辑: 如果要执行反向操作。如果列不在集合中,则可以执行以下操作: 限制.not(限制.in(“colName”,集合))
请参见谢谢您的帮助,但我有一个小问题-它检查集合是否相等或元素是否在集合中?我之所以这样问是因为它以集合而不是元素作为参数。他想反过来说,我相信:)您所问的根本不可能。您可以选择为查询设置权限并执行。使用hibernate会话。:)