[英]Can I add Restriction.eq() for list?
我有這段代碼:
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);
換句話說,我可以從列表中包含對象的對象中獲取數據庫嗎? 如果有人回答我的問題,我將非常高興-預先感謝您。
您將使用Restrictions.in(“ colName”,collection)方法。
編輯:如果您想做逆。 如果列不在集合中,則可以執行以下操作:
Restrictions.not(Restrictions.in(“ colName”,collection))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.