簡體   English   中英

我可以為列表添加Restriction.eq()嗎?

[英]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))

參見http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/criterion/Restrictions.html#in(java.lang.String,java.util.Collection)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM