1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   * 
13   */
14  
15  package com.liferay.portlet.messageboards.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.SystemException;
19  import com.liferay.portal.kernel.annotation.BeanReference;
20  import com.liferay.portal.kernel.cache.CacheRegistry;
21  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
22  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
23  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
24  import com.liferay.portal.kernel.dao.orm.FinderPath;
25  import com.liferay.portal.kernel.dao.orm.Query;
26  import com.liferay.portal.kernel.dao.orm.QueryPos;
27  import com.liferay.portal.kernel.dao.orm.QueryUtil;
28  import com.liferay.portal.kernel.dao.orm.Session;
29  import com.liferay.portal.kernel.log.Log;
30  import com.liferay.portal.kernel.log.LogFactoryUtil;
31  import com.liferay.portal.kernel.util.GetterUtil;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.model.ModelListener;
37  import com.liferay.portal.service.persistence.BatchSessionUtil;
38  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
39  
40  import com.liferay.portlet.messageboards.NoSuchMessageFlagException;
41  import com.liferay.portlet.messageboards.model.MBMessageFlag;
42  import com.liferay.portlet.messageboards.model.impl.MBMessageFlagImpl;
43  import com.liferay.portlet.messageboards.model.impl.MBMessageFlagModelImpl;
44  
45  import java.io.Serializable;
46  
47  import java.util.ArrayList;
48  import java.util.Collections;
49  import java.util.List;
50  
51  /**
52   * <a href="MBMessageFlagPersistenceImpl.java.html"><b><i>View Source</i></b></a>
53   *
54   * <p>
55   * ServiceBuilder generated this class. Modifications in this class will be
56   * overwritten the next time is generated.
57   * </p>
58   *
59   * @author    Brian Wing Shun Chan
60   * @see       MBMessageFlagPersistence
61   * @see       MBMessageFlagUtil
62   * @generated
63   */
64  public class MBMessageFlagPersistenceImpl extends BasePersistenceImpl<MBMessageFlag>
65      implements MBMessageFlagPersistence {
66      public static final String FINDER_CLASS_NAME_ENTITY = MBMessageFlagImpl.class.getName();
67      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
68          ".List";
69      public static final FinderPath FINDER_PATH_FIND_BY_USERID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
70              MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
71              FINDER_CLASS_NAME_LIST, "findByUserId",
72              new String[] { Long.class.getName() });
73      public static final FinderPath FINDER_PATH_FIND_BY_OBC_USERID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
74              MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
75              FINDER_CLASS_NAME_LIST, "findByUserId",
76              new String[] {
77                  Long.class.getName(),
78                  
79              "java.lang.Integer", "java.lang.Integer",
80                  "com.liferay.portal.kernel.util.OrderByComparator"
81              });
82      public static final FinderPath FINDER_PATH_COUNT_BY_USERID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
83              MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
84              FINDER_CLASS_NAME_LIST, "countByUserId",
85              new String[] { Long.class.getName() });
86      public static final FinderPath FINDER_PATH_FIND_BY_THREADID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
87              MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
88              FINDER_CLASS_NAME_LIST, "findByThreadId",
89              new String[] { Long.class.getName() });
90      public static final FinderPath FINDER_PATH_FIND_BY_OBC_THREADID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
91              MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
92              FINDER_CLASS_NAME_LIST, "findByThreadId",
93              new String[] {
94                  Long.class.getName(),
95                  
96              "java.lang.Integer", "java.lang.Integer",
97                  "com.liferay.portal.kernel.util.OrderByComparator"
98              });
99      public static final FinderPath FINDER_PATH_COUNT_BY_THREADID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
100             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
101             FINDER_CLASS_NAME_LIST, "countByThreadId",
102             new String[] { Long.class.getName() });
103     public static final FinderPath FINDER_PATH_FIND_BY_MESSAGEID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
104             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
105             FINDER_CLASS_NAME_LIST, "findByMessageId",
106             new String[] { Long.class.getName() });
107     public static final FinderPath FINDER_PATH_FIND_BY_OBC_MESSAGEID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
108             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
109             FINDER_CLASS_NAME_LIST, "findByMessageId",
110             new String[] {
111                 Long.class.getName(),
112                 
113             "java.lang.Integer", "java.lang.Integer",
114                 "com.liferay.portal.kernel.util.OrderByComparator"
115             });
116     public static final FinderPath FINDER_PATH_COUNT_BY_MESSAGEID = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
117             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
118             FINDER_CLASS_NAME_LIST, "countByMessageId",
119             new String[] { Long.class.getName() });
120     public static final FinderPath FINDER_PATH_FIND_BY_T_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
121             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
122             FINDER_CLASS_NAME_LIST, "findByT_F",
123             new String[] { Long.class.getName(), Integer.class.getName() });
124     public static final FinderPath FINDER_PATH_FIND_BY_OBC_T_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
125             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
126             FINDER_CLASS_NAME_LIST, "findByT_F",
127             new String[] {
128                 Long.class.getName(), Integer.class.getName(),
129                 
130             "java.lang.Integer", "java.lang.Integer",
131                 "com.liferay.portal.kernel.util.OrderByComparator"
132             });
133     public static final FinderPath FINDER_PATH_COUNT_BY_T_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
134             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
135             FINDER_CLASS_NAME_LIST, "countByT_F",
136             new String[] { Long.class.getName(), Integer.class.getName() });
137     public static final FinderPath FINDER_PATH_FIND_BY_M_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
138             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
139             FINDER_CLASS_NAME_LIST, "findByM_F",
140             new String[] { Long.class.getName(), Integer.class.getName() });
141     public static final FinderPath FINDER_PATH_FIND_BY_OBC_M_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
142             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
143             FINDER_CLASS_NAME_LIST, "findByM_F",
144             new String[] {
145                 Long.class.getName(), Integer.class.getName(),
146                 
147             "java.lang.Integer", "java.lang.Integer",
148                 "com.liferay.portal.kernel.util.OrderByComparator"
149             });
150     public static final FinderPath FINDER_PATH_COUNT_BY_M_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
151             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
152             FINDER_CLASS_NAME_LIST, "countByM_F",
153             new String[] { Long.class.getName(), Integer.class.getName() });
154     public static final FinderPath FINDER_PATH_FIND_BY_U_T_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
155             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
156             FINDER_CLASS_NAME_LIST, "findByU_T_F",
157             new String[] {
158                 Long.class.getName(), Long.class.getName(),
159                 Integer.class.getName()
160             });
161     public static final FinderPath FINDER_PATH_FIND_BY_OBC_U_T_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
162             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
163             FINDER_CLASS_NAME_LIST, "findByU_T_F",
164             new String[] {
165                 Long.class.getName(), Long.class.getName(),
166                 Integer.class.getName(),
167                 
168             "java.lang.Integer", "java.lang.Integer",
169                 "com.liferay.portal.kernel.util.OrderByComparator"
170             });
171     public static final FinderPath FINDER_PATH_COUNT_BY_U_T_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
172             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
173             FINDER_CLASS_NAME_LIST, "countByU_T_F",
174             new String[] {
175                 Long.class.getName(), Long.class.getName(),
176                 Integer.class.getName()
177             });
178     public static final FinderPath FINDER_PATH_FETCH_BY_U_M_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
179             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
180             FINDER_CLASS_NAME_ENTITY, "fetchByU_M_F",
181             new String[] {
182                 Long.class.getName(), Long.class.getName(),
183                 Integer.class.getName()
184             });
185     public static final FinderPath FINDER_PATH_COUNT_BY_U_M_F = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
186             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
187             FINDER_CLASS_NAME_LIST, "countByU_M_F",
188             new String[] {
189                 Long.class.getName(), Long.class.getName(),
190                 Integer.class.getName()
191             });
192     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
193             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
194             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
195     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
196             MBMessageFlagModelImpl.FINDER_CACHE_ENABLED,
197             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
198 
199     public void cacheResult(MBMessageFlag mbMessageFlag) {
200         EntityCacheUtil.putResult(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
201             MBMessageFlagImpl.class, mbMessageFlag.getPrimaryKey(),
202             mbMessageFlag);
203 
204         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_M_F,
205             new Object[] {
206                 new Long(mbMessageFlag.getUserId()),
207                 new Long(mbMessageFlag.getMessageId()),
208                 new Integer(mbMessageFlag.getFlag())
209             }, mbMessageFlag);
210     }
211 
212     public void cacheResult(List<MBMessageFlag> mbMessageFlags) {
213         for (MBMessageFlag mbMessageFlag : mbMessageFlags) {
214             if (EntityCacheUtil.getResult(
215                         MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
216                         MBMessageFlagImpl.class, mbMessageFlag.getPrimaryKey(),
217                         this) == null) {
218                 cacheResult(mbMessageFlag);
219             }
220         }
221     }
222 
223     public void clearCache() {
224         CacheRegistry.clear(MBMessageFlagImpl.class.getName());
225         EntityCacheUtil.clearCache(MBMessageFlagImpl.class.getName());
226         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
227         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
228     }
229 
230     public MBMessageFlag create(long messageFlagId) {
231         MBMessageFlag mbMessageFlag = new MBMessageFlagImpl();
232 
233         mbMessageFlag.setNew(true);
234         mbMessageFlag.setPrimaryKey(messageFlagId);
235 
236         return mbMessageFlag;
237     }
238 
239     public MBMessageFlag remove(Serializable primaryKey)
240         throws NoSuchModelException, SystemException {
241         return remove(((Long)primaryKey).longValue());
242     }
243 
244     public MBMessageFlag remove(long messageFlagId)
245         throws NoSuchMessageFlagException, SystemException {
246         Session session = null;
247 
248         try {
249             session = openSession();
250 
251             MBMessageFlag mbMessageFlag = (MBMessageFlag)session.get(MBMessageFlagImpl.class,
252                     new Long(messageFlagId));
253 
254             if (mbMessageFlag == null) {
255                 if (_log.isWarnEnabled()) {
256                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + messageFlagId);
257                 }
258 
259                 throw new NoSuchMessageFlagException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
260                     messageFlagId);
261             }
262 
263             return remove(mbMessageFlag);
264         }
265         catch (NoSuchMessageFlagException nsee) {
266             throw nsee;
267         }
268         catch (Exception e) {
269             throw processException(e);
270         }
271         finally {
272             closeSession(session);
273         }
274     }
275 
276     public MBMessageFlag remove(MBMessageFlag mbMessageFlag)
277         throws SystemException {
278         for (ModelListener<MBMessageFlag> listener : listeners) {
279             listener.onBeforeRemove(mbMessageFlag);
280         }
281 
282         mbMessageFlag = removeImpl(mbMessageFlag);
283 
284         for (ModelListener<MBMessageFlag> listener : listeners) {
285             listener.onAfterRemove(mbMessageFlag);
286         }
287 
288         return mbMessageFlag;
289     }
290 
291     protected MBMessageFlag removeImpl(MBMessageFlag mbMessageFlag)
292         throws SystemException {
293         mbMessageFlag = toUnwrappedModel(mbMessageFlag);
294 
295         Session session = null;
296 
297         try {
298             session = openSession();
299 
300             if (mbMessageFlag.isCachedModel() || BatchSessionUtil.isEnabled()) {
301                 Object staleObject = session.get(MBMessageFlagImpl.class,
302                         mbMessageFlag.getPrimaryKeyObj());
303 
304                 if (staleObject != null) {
305                     session.evict(staleObject);
306                 }
307             }
308 
309             session.delete(mbMessageFlag);
310 
311             session.flush();
312         }
313         catch (Exception e) {
314             throw processException(e);
315         }
316         finally {
317             closeSession(session);
318         }
319 
320         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
321 
322         MBMessageFlagModelImpl mbMessageFlagModelImpl = (MBMessageFlagModelImpl)mbMessageFlag;
323 
324         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_U_M_F,
325             new Object[] {
326                 new Long(mbMessageFlagModelImpl.getOriginalUserId()),
327                 new Long(mbMessageFlagModelImpl.getOriginalMessageId()),
328                 new Integer(mbMessageFlagModelImpl.getOriginalFlag())
329             });
330 
331         EntityCacheUtil.removeResult(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
332             MBMessageFlagImpl.class, mbMessageFlag.getPrimaryKey());
333 
334         return mbMessageFlag;
335     }
336 
337     /**
338      * @deprecated Use {@link BasePersistence#update(com.liferay.portal.model.BaseModel, boolean)}.
339      */
340     public MBMessageFlag update(MBMessageFlag mbMessageFlag)
341         throws SystemException {
342         if (_log.isWarnEnabled()) {
343             _log.warn(
344                 "Using the deprecated update(MBMessageFlag mbMessageFlag) method. Use update(MBMessageFlag mbMessageFlag, boolean merge) instead.");
345         }
346 
347         return update(mbMessageFlag, false);
348     }
349 
350     public MBMessageFlag updateImpl(
351         com.liferay.portlet.messageboards.model.MBMessageFlag mbMessageFlag,
352         boolean merge) throws SystemException {
353         mbMessageFlag = toUnwrappedModel(mbMessageFlag);
354 
355         boolean isNew = mbMessageFlag.isNew();
356 
357         MBMessageFlagModelImpl mbMessageFlagModelImpl = (MBMessageFlagModelImpl)mbMessageFlag;
358 
359         Session session = null;
360 
361         try {
362             session = openSession();
363 
364             BatchSessionUtil.update(session, mbMessageFlag, merge);
365 
366             mbMessageFlag.setNew(false);
367         }
368         catch (Exception e) {
369             throw processException(e);
370         }
371         finally {
372             closeSession(session);
373         }
374 
375         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
376 
377         EntityCacheUtil.putResult(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
378             MBMessageFlagImpl.class, mbMessageFlag.getPrimaryKey(),
379             mbMessageFlag);
380 
381         if (!isNew &&
382                 ((mbMessageFlag.getUserId() != mbMessageFlagModelImpl.getOriginalUserId()) ||
383                 (mbMessageFlag.getMessageId() != mbMessageFlagModelImpl.getOriginalMessageId()) ||
384                 (mbMessageFlag.getFlag() != mbMessageFlagModelImpl.getOriginalFlag()))) {
385             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_U_M_F,
386                 new Object[] {
387                     new Long(mbMessageFlagModelImpl.getOriginalUserId()),
388                     new Long(mbMessageFlagModelImpl.getOriginalMessageId()),
389                     new Integer(mbMessageFlagModelImpl.getOriginalFlag())
390                 });
391         }
392 
393         if (isNew ||
394                 ((mbMessageFlag.getUserId() != mbMessageFlagModelImpl.getOriginalUserId()) ||
395                 (mbMessageFlag.getMessageId() != mbMessageFlagModelImpl.getOriginalMessageId()) ||
396                 (mbMessageFlag.getFlag() != mbMessageFlagModelImpl.getOriginalFlag()))) {
397             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_M_F,
398                 new Object[] {
399                     new Long(mbMessageFlag.getUserId()),
400                     new Long(mbMessageFlag.getMessageId()),
401                     new Integer(mbMessageFlag.getFlag())
402                 }, mbMessageFlag);
403         }
404 
405         return mbMessageFlag;
406     }
407 
408     protected MBMessageFlag toUnwrappedModel(MBMessageFlag mbMessageFlag) {
409         if (mbMessageFlag instanceof MBMessageFlagImpl) {
410             return mbMessageFlag;
411         }
412 
413         MBMessageFlagImpl mbMessageFlagImpl = new MBMessageFlagImpl();
414 
415         mbMessageFlagImpl.setNew(mbMessageFlag.isNew());
416         mbMessageFlagImpl.setPrimaryKey(mbMessageFlag.getPrimaryKey());
417 
418         mbMessageFlagImpl.setMessageFlagId(mbMessageFlag.getMessageFlagId());
419         mbMessageFlagImpl.setUserId(mbMessageFlag.getUserId());
420         mbMessageFlagImpl.setModifiedDate(mbMessageFlag.getModifiedDate());
421         mbMessageFlagImpl.setThreadId(mbMessageFlag.getThreadId());
422         mbMessageFlagImpl.setMessageId(mbMessageFlag.getMessageId());
423         mbMessageFlagImpl.setFlag(mbMessageFlag.getFlag());
424 
425         return mbMessageFlagImpl;
426     }
427 
428     public MBMessageFlag findByPrimaryKey(Serializable primaryKey)
429         throws NoSuchModelException, SystemException {
430         return findByPrimaryKey(((Long)primaryKey).longValue());
431     }
432 
433     public MBMessageFlag findByPrimaryKey(long messageFlagId)
434         throws NoSuchMessageFlagException, SystemException {
435         MBMessageFlag mbMessageFlag = fetchByPrimaryKey(messageFlagId);
436 
437         if (mbMessageFlag == null) {
438             if (_log.isWarnEnabled()) {
439                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + messageFlagId);
440             }
441 
442             throw new NoSuchMessageFlagException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
443                 messageFlagId);
444         }
445 
446         return mbMessageFlag;
447     }
448 
449     public MBMessageFlag fetchByPrimaryKey(Serializable primaryKey)
450         throws SystemException {
451         return fetchByPrimaryKey(((Long)primaryKey).longValue());
452     }
453 
454     public MBMessageFlag fetchByPrimaryKey(long messageFlagId)
455         throws SystemException {
456         MBMessageFlag mbMessageFlag = (MBMessageFlag)EntityCacheUtil.getResult(MBMessageFlagModelImpl.ENTITY_CACHE_ENABLED,
457                 MBMessageFlagImpl.class, messageFlagId, this);
458 
459         if (mbMessageFlag == null) {
460             Session session = null;
461 
462             try {
463                 session = openSession();
464 
465                 mbMessageFlag = (MBMessageFlag)session.get(MBMessageFlagImpl.class,
466                         new Long(messageFlagId));
467             }
468             catch (Exception e) {
469                 throw processException(e);
470             }
471             finally {
472                 if (mbMessageFlag != null) {
473                     cacheResult(mbMessageFlag);
474                 }
475 
476                 closeSession(session);
477             }
478         }
479 
480         return mbMessageFlag;
481     }
482 
483     public List<MBMessageFlag> findByUserId(long userId)
484         throws SystemException {
485         Object[] finderArgs = new Object[] { new Long(userId) };
486 
487         List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_USERID,
488                 finderArgs, this);
489 
490         if (list == null) {
491             Session session = null;
492 
493             try {
494                 session = openSession();
495 
496                 StringBundler query = new StringBundler(2);
497 
498                 query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
499 
500                 query.append(_FINDER_COLUMN_USERID_USERID_2);
501 
502                 String sql = query.toString();
503 
504                 Query q = session.createQuery(sql);
505 
506                 QueryPos qPos = QueryPos.getInstance(q);
507 
508                 qPos.add(userId);
509 
510                 list = q.list();
511             }
512             catch (Exception e) {
513                 throw processException(e);
514             }
515             finally {
516                 if (list == null) {
517                     list = new ArrayList<MBMessageFlag>();
518                 }
519 
520                 cacheResult(list);
521 
522                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_USERID,
523                     finderArgs, list);
524 
525                 closeSession(session);
526             }
527         }
528 
529         return list;
530     }
531 
532     public List<MBMessageFlag> findByUserId(long userId, int start, int end)
533         throws SystemException {
534         return findByUserId(userId, start, end, null);
535     }
536 
537     public List<MBMessageFlag> findByUserId(long userId, int start, int end,
538         OrderByComparator obc) throws SystemException {
539         Object[] finderArgs = new Object[] {
540                 new Long(userId),
541                 
542                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
543             };
544 
545         List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_USERID,
546                 finderArgs, this);
547 
548         if (list == null) {
549             Session session = null;
550 
551             try {
552                 session = openSession();
553 
554                 StringBundler query = null;
555 
556                 if (obc != null) {
557                     query = new StringBundler(3 +
558                             (obc.getOrderByFields().length * 3));
559                 }
560                 else {
561                     query = new StringBundler(2);
562                 }
563 
564                 query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
565 
566                 query.append(_FINDER_COLUMN_USERID_USERID_2);
567 
568                 if (obc != null) {
569                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
570                 }
571 
572                 String sql = query.toString();
573 
574                 Query q = session.createQuery(sql);
575 
576                 QueryPos qPos = QueryPos.getInstance(q);
577 
578                 qPos.add(userId);
579 
580                 list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
581                         start, end);
582             }
583             catch (Exception e) {
584                 throw processException(e);
585             }
586             finally {
587                 if (list == null) {
588                     list = new ArrayList<MBMessageFlag>();
589                 }
590 
591                 cacheResult(list);
592 
593                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_USERID,
594                     finderArgs, list);
595 
596                 closeSession(session);
597             }
598         }
599 
600         return list;
601     }
602 
603     public MBMessageFlag findByUserId_First(long userId, OrderByComparator obc)
604         throws NoSuchMessageFlagException, SystemException {
605         List<MBMessageFlag> list = findByUserId(userId, 0, 1, obc);
606 
607         if (list.isEmpty()) {
608             StringBundler msg = new StringBundler(4);
609 
610             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
611 
612             msg.append("userId=");
613             msg.append(userId);
614 
615             msg.append(StringPool.CLOSE_CURLY_BRACE);
616 
617             throw new NoSuchMessageFlagException(msg.toString());
618         }
619         else {
620             return list.get(0);
621         }
622     }
623 
624     public MBMessageFlag findByUserId_Last(long userId, OrderByComparator obc)
625         throws NoSuchMessageFlagException, SystemException {
626         int count = countByUserId(userId);
627 
628         List<MBMessageFlag> list = findByUserId(userId, count - 1, count, obc);
629 
630         if (list.isEmpty()) {
631             StringBundler msg = new StringBundler(4);
632 
633             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
634 
635             msg.append("userId=");
636             msg.append(userId);
637 
638             msg.append(StringPool.CLOSE_CURLY_BRACE);
639 
640             throw new NoSuchMessageFlagException(msg.toString());
641         }
642         else {
643             return list.get(0);
644         }
645     }
646 
647     public MBMessageFlag[] findByUserId_PrevAndNext(long messageFlagId,
648         long userId, OrderByComparator obc)
649         throws NoSuchMessageFlagException, SystemException {
650         MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
651 
652         int count = countByUserId(userId);
653 
654         Session session = null;
655 
656         try {
657             session = openSession();
658 
659             StringBundler query = null;
660 
661             if (obc != null) {
662                 query = new StringBundler(3 +
663                         (obc.getOrderByFields().length * 3));
664             }
665             else {
666                 query = new StringBundler(2);
667             }
668 
669             query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
670 
671             query.append(_FINDER_COLUMN_USERID_USERID_2);
672 
673             if (obc != null) {
674                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
675             }
676 
677             String sql = query.toString();
678 
679             Query q = session.createQuery(sql);
680 
681             QueryPos qPos = QueryPos.getInstance(q);
682 
683             qPos.add(userId);
684 
685             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
686                     mbMessageFlag);
687 
688             MBMessageFlag[] array = new MBMessageFlagImpl[3];
689 
690             array[0] = (MBMessageFlag)objArray[0];
691             array[1] = (MBMessageFlag)objArray[1];
692             array[2] = (MBMessageFlag)objArray[2];
693 
694             return array;
695         }
696         catch (Exception e) {
697             throw processException(e);
698         }
699         finally {
700             closeSession(session);
701         }
702     }
703 
704     public List<MBMessageFlag> findByThreadId(long threadId)
705         throws SystemException {
706         Object[] finderArgs = new Object[] { new Long(threadId) };
707 
708         List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_THREADID,
709                 finderArgs, this);
710 
711         if (list == null) {
712             Session session = null;
713 
714             try {
715                 session = openSession();
716 
717                 StringBundler query = new StringBundler(2);
718 
719                 query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
720 
721                 query.append(_FINDER_COLUMN_THREADID_THREADID_2);
722 
723                 String sql = query.toString();
724 
725                 Query q = session.createQuery(sql);
726 
727                 QueryPos qPos = QueryPos.getInstance(q);
728 
729                 qPos.add(threadId);
730 
731                 list = q.list();
732             }
733             catch (Exception e) {
734                 throw processException(e);
735             }
736             finally {
737                 if (list == null) {
738                     list = new ArrayList<MBMessageFlag>();
739                 }
740 
741                 cacheResult(list);
742 
743                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_THREADID,
744                     finderArgs, list);
745 
746                 closeSession(session);
747             }
748         }
749 
750         return list;
751     }
752 
753     public List<MBMessageFlag> findByThreadId(long threadId, int start, int end)
754         throws SystemException {
755         return findByThreadId(threadId, start, end, null);
756     }
757 
758     public List<MBMessageFlag> findByThreadId(long threadId, int start,
759         int end, OrderByComparator obc) throws SystemException {
760         Object[] finderArgs = new Object[] {
761                 new Long(threadId),
762                 
763                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
764             };
765 
766         List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_THREADID,
767                 finderArgs, this);
768 
769         if (list == null) {
770             Session session = null;
771 
772             try {
773                 session = openSession();
774 
775                 StringBundler query = null;
776 
777                 if (obc != null) {
778                     query = new StringBundler(3 +
779                             (obc.getOrderByFields().length * 3));
780                 }
781                 else {
782                     query = new StringBundler(2);
783                 }
784 
785                 query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
786 
787                 query.append(_FINDER_COLUMN_THREADID_THREADID_2);
788 
789                 if (obc != null) {
790                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
791                 }
792 
793                 String sql = query.toString();
794 
795                 Query q = session.createQuery(sql);
796 
797                 QueryPos qPos = QueryPos.getInstance(q);
798 
799                 qPos.add(threadId);
800 
801                 list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
802                         start, end);
803             }
804             catch (Exception e) {
805                 throw processException(e);
806             }
807             finally {
808                 if (list == null) {
809                     list = new ArrayList<MBMessageFlag>();
810                 }
811 
812                 cacheResult(list);
813 
814                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_THREADID,
815                     finderArgs, list);
816 
817                 closeSession(session);
818             }
819         }
820 
821         return list;
822     }
823 
824     public MBMessageFlag findByThreadId_First(long threadId,
825         OrderByComparator obc)
826         throws NoSuchMessageFlagException, SystemException {
827         List<MBMessageFlag> list = findByThreadId(threadId, 0, 1, obc);
828 
829         if (list.isEmpty()) {
830             StringBundler msg = new StringBundler(4);
831 
832             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
833 
834             msg.append("threadId=");
835             msg.append(threadId);
836 
837             msg.append(StringPool.CLOSE_CURLY_BRACE);
838 
839             throw new NoSuchMessageFlagException(msg.toString());
840         }
841         else {
842             return list.get(0);
843         }
844     }
845 
846     public MBMessageFlag findByThreadId_Last(long threadId,
847         OrderByComparator obc)
848         throws NoSuchMessageFlagException, SystemException {
849         int count = countByThreadId(threadId);
850 
851         List<MBMessageFlag> list = findByThreadId(threadId, count - 1, count,
852                 obc);
853 
854         if (list.isEmpty()) {
855             StringBundler msg = new StringBundler(4);
856 
857             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
858 
859             msg.append("threadId=");
860             msg.append(threadId);
861 
862             msg.append(StringPool.CLOSE_CURLY_BRACE);
863 
864             throw new NoSuchMessageFlagException(msg.toString());
865         }
866         else {
867             return list.get(0);
868         }
869     }
870 
871     public MBMessageFlag[] findByThreadId_PrevAndNext(long messageFlagId,
872         long threadId, OrderByComparator obc)
873         throws NoSuchMessageFlagException, SystemException {
874         MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
875 
876         int count = countByThreadId(threadId);
877 
878         Session session = null;
879 
880         try {
881             session = openSession();
882 
883             StringBundler query = null;
884 
885             if (obc != null) {
886                 query = new StringBundler(3 +
887                         (obc.getOrderByFields().length * 3));
888             }
889             else {
890                 query = new StringBundler(2);
891             }
892 
893             query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
894 
895             query.append(_FINDER_COLUMN_THREADID_THREADID_2);
896 
897             if (obc != null) {
898                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
899             }
900 
901             String sql = query.toString();
902 
903             Query q = session.createQuery(sql);
904 
905             QueryPos qPos = QueryPos.getInstance(q);
906 
907             qPos.add(threadId);
908 
909             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
910                     mbMessageFlag);
911 
912             MBMessageFlag[] array = new MBMessageFlagImpl[3];
913 
914             array[0] = (MBMessageFlag)objArray[0];
915             array[1] = (MBMessageFlag)objArray[1];
916             array[2] = (MBMessageFlag)objArray[2];
917 
918             return array;
919         }
920         catch (Exception e) {
921             throw processException(e);
922         }
923         finally {
924             closeSession(session);
925         }
926     }
927 
928     public List<MBMessageFlag> findByMessageId(long messageId)
929         throws SystemException {
930         Object[] finderArgs = new Object[] { new Long(messageId) };
931 
932         List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_MESSAGEID,
933                 finderArgs, this);
934 
935         if (list == null) {
936             Session session = null;
937 
938             try {
939                 session = openSession();
940 
941                 StringBundler query = new StringBundler(2);
942 
943                 query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
944 
945                 query.append(_FINDER_COLUMN_MESSAGEID_MESSAGEID_2);
946 
947                 String sql = query.toString();
948 
949                 Query q = session.createQuery(sql);
950 
951                 QueryPos qPos = QueryPos.getInstance(q);
952 
953                 qPos.add(messageId);
954 
955                 list = q.list();
956             }
957             catch (Exception e) {
958                 throw processException(e);
959             }
960             finally {
961                 if (list == null) {
962                     list = new ArrayList<MBMessageFlag>();
963                 }
964 
965                 cacheResult(list);
966 
967                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_MESSAGEID,
968                     finderArgs, list);
969 
970                 closeSession(session);
971             }
972         }
973 
974         return list;
975     }
976 
977     public List<MBMessageFlag> findByMessageId(long messageId, int start,
978         int end) throws SystemException {
979         return findByMessageId(messageId, start, end, null);
980     }
981 
982     public List<MBMessageFlag> findByMessageId(long messageId, int start,
983         int end, OrderByComparator obc) throws SystemException {
984         Object[] finderArgs = new Object[] {
985                 new Long(messageId),
986                 
987                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
988             };
989 
990         List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_MESSAGEID,
991                 finderArgs, this);
992 
993         if (list == null) {
994             Session session = null;
995 
996             try {
997                 session = openSession();
998 
999                 StringBundler query = null;
1000
1001                if (obc != null) {
1002                    query = new StringBundler(3 +
1003                            (obc.getOrderByFields().length * 3));
1004                }
1005                else {
1006                    query = new StringBundler(2);
1007                }
1008
1009                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1010
1011                query.append(_FINDER_COLUMN_MESSAGEID_MESSAGEID_2);
1012
1013                if (obc != null) {
1014                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1015                }
1016
1017                String sql = query.toString();
1018
1019                Query q = session.createQuery(sql);
1020
1021                QueryPos qPos = QueryPos.getInstance(q);
1022
1023                qPos.add(messageId);
1024
1025                list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
1026                        start, end);
1027            }
1028            catch (Exception e) {
1029                throw processException(e);
1030            }
1031            finally {
1032                if (list == null) {
1033                    list = new ArrayList<MBMessageFlag>();
1034                }
1035
1036                cacheResult(list);
1037
1038                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_MESSAGEID,
1039                    finderArgs, list);
1040
1041                closeSession(session);
1042            }
1043        }
1044
1045        return list;
1046    }
1047
1048    public MBMessageFlag findByMessageId_First(long messageId,
1049        OrderByComparator obc)
1050        throws NoSuchMessageFlagException, SystemException {
1051        List<MBMessageFlag> list = findByMessageId(messageId, 0, 1, obc);
1052
1053        if (list.isEmpty()) {
1054            StringBundler msg = new StringBundler(4);
1055
1056            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1057
1058            msg.append("messageId=");
1059            msg.append(messageId);
1060
1061            msg.append(StringPool.CLOSE_CURLY_BRACE);
1062
1063            throw new NoSuchMessageFlagException(msg.toString());
1064        }
1065        else {
1066            return list.get(0);
1067        }
1068    }
1069
1070    public MBMessageFlag findByMessageId_Last(long messageId,
1071        OrderByComparator obc)
1072        throws NoSuchMessageFlagException, SystemException {
1073        int count = countByMessageId(messageId);
1074
1075        List<MBMessageFlag> list = findByMessageId(messageId, count - 1, count,
1076                obc);
1077
1078        if (list.isEmpty()) {
1079            StringBundler msg = new StringBundler(4);
1080
1081            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1082
1083            msg.append("messageId=");
1084            msg.append(messageId);
1085
1086            msg.append(StringPool.CLOSE_CURLY_BRACE);
1087
1088            throw new NoSuchMessageFlagException(msg.toString());
1089        }
1090        else {
1091            return list.get(0);
1092        }
1093    }
1094
1095    public MBMessageFlag[] findByMessageId_PrevAndNext(long messageFlagId,
1096        long messageId, OrderByComparator obc)
1097        throws NoSuchMessageFlagException, SystemException {
1098        MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
1099
1100        int count = countByMessageId(messageId);
1101
1102        Session session = null;
1103
1104        try {
1105            session = openSession();
1106
1107            StringBundler query = null;
1108
1109            if (obc != null) {
1110                query = new StringBundler(3 +
1111                        (obc.getOrderByFields().length * 3));
1112            }
1113            else {
1114                query = new StringBundler(2);
1115            }
1116
1117            query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1118
1119            query.append(_FINDER_COLUMN_MESSAGEID_MESSAGEID_2);
1120
1121            if (obc != null) {
1122                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1123            }
1124
1125            String sql = query.toString();
1126
1127            Query q = session.createQuery(sql);
1128
1129            QueryPos qPos = QueryPos.getInstance(q);
1130
1131            qPos.add(messageId);
1132
1133            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1134                    mbMessageFlag);
1135
1136            MBMessageFlag[] array = new MBMessageFlagImpl[3];
1137
1138            array[0] = (MBMessageFlag)objArray[0];
1139            array[1] = (MBMessageFlag)objArray[1];
1140            array[2] = (MBMessageFlag)objArray[2];
1141
1142            return array;
1143        }
1144        catch (Exception e) {
1145            throw processException(e);
1146        }
1147        finally {
1148            closeSession(session);
1149        }
1150    }
1151
1152    public List<MBMessageFlag> findByT_F(long threadId, int flag)
1153        throws SystemException {
1154        Object[] finderArgs = new Object[] { new Long(threadId), new Integer(flag) };
1155
1156        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_T_F,
1157                finderArgs, this);
1158
1159        if (list == null) {
1160            Session session = null;
1161
1162            try {
1163                session = openSession();
1164
1165                StringBundler query = new StringBundler(3);
1166
1167                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1168
1169                query.append(_FINDER_COLUMN_T_F_THREADID_2);
1170
1171                query.append(_FINDER_COLUMN_T_F_FLAG_2);
1172
1173                String sql = query.toString();
1174
1175                Query q = session.createQuery(sql);
1176
1177                QueryPos qPos = QueryPos.getInstance(q);
1178
1179                qPos.add(threadId);
1180
1181                qPos.add(flag);
1182
1183                list = q.list();
1184            }
1185            catch (Exception e) {
1186                throw processException(e);
1187            }
1188            finally {
1189                if (list == null) {
1190                    list = new ArrayList<MBMessageFlag>();
1191                }
1192
1193                cacheResult(list);
1194
1195                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_T_F, finderArgs,
1196                    list);
1197
1198                closeSession(session);
1199            }
1200        }
1201
1202        return list;
1203    }
1204
1205    public List<MBMessageFlag> findByT_F(long threadId, int flag, int start,
1206        int end) throws SystemException {
1207        return findByT_F(threadId, flag, start, end, null);
1208    }
1209
1210    public List<MBMessageFlag> findByT_F(long threadId, int flag, int start,
1211        int end, OrderByComparator obc) throws SystemException {
1212        Object[] finderArgs = new Object[] {
1213                new Long(threadId), new Integer(flag),
1214                
1215                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1216            };
1217
1218        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_T_F,
1219                finderArgs, this);
1220
1221        if (list == null) {
1222            Session session = null;
1223
1224            try {
1225                session = openSession();
1226
1227                StringBundler query = null;
1228
1229                if (obc != null) {
1230                    query = new StringBundler(4 +
1231                            (obc.getOrderByFields().length * 3));
1232                }
1233                else {
1234                    query = new StringBundler(3);
1235                }
1236
1237                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1238
1239                query.append(_FINDER_COLUMN_T_F_THREADID_2);
1240
1241                query.append(_FINDER_COLUMN_T_F_FLAG_2);
1242
1243                if (obc != null) {
1244                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1245                }
1246
1247                String sql = query.toString();
1248
1249                Query q = session.createQuery(sql);
1250
1251                QueryPos qPos = QueryPos.getInstance(q);
1252
1253                qPos.add(threadId);
1254
1255                qPos.add(flag);
1256
1257                list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
1258                        start, end);
1259            }
1260            catch (Exception e) {
1261                throw processException(e);
1262            }
1263            finally {
1264                if (list == null) {
1265                    list = new ArrayList<MBMessageFlag>();
1266                }
1267
1268                cacheResult(list);
1269
1270                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_T_F,
1271                    finderArgs, list);
1272
1273                closeSession(session);
1274            }
1275        }
1276
1277        return list;
1278    }
1279
1280    public MBMessageFlag findByT_F_First(long threadId, int flag,
1281        OrderByComparator obc)
1282        throws NoSuchMessageFlagException, SystemException {
1283        List<MBMessageFlag> list = findByT_F(threadId, flag, 0, 1, obc);
1284
1285        if (list.isEmpty()) {
1286            StringBundler msg = new StringBundler(6);
1287
1288            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1289
1290            msg.append("threadId=");
1291            msg.append(threadId);
1292
1293            msg.append(", flag=");
1294            msg.append(flag);
1295
1296            msg.append(StringPool.CLOSE_CURLY_BRACE);
1297
1298            throw new NoSuchMessageFlagException(msg.toString());
1299        }
1300        else {
1301            return list.get(0);
1302        }
1303    }
1304
1305    public MBMessageFlag findByT_F_Last(long threadId, int flag,
1306        OrderByComparator obc)
1307        throws NoSuchMessageFlagException, SystemException {
1308        int count = countByT_F(threadId, flag);
1309
1310        List<MBMessageFlag> list = findByT_F(threadId, flag, count - 1, count,
1311                obc);
1312
1313        if (list.isEmpty()) {
1314            StringBundler msg = new StringBundler(6);
1315
1316            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1317
1318            msg.append("threadId=");
1319            msg.append(threadId);
1320
1321            msg.append(", flag=");
1322            msg.append(flag);
1323
1324            msg.append(StringPool.CLOSE_CURLY_BRACE);
1325
1326            throw new NoSuchMessageFlagException(msg.toString());
1327        }
1328        else {
1329            return list.get(0);
1330        }
1331    }
1332
1333    public MBMessageFlag[] findByT_F_PrevAndNext(long messageFlagId,
1334        long threadId, int flag, OrderByComparator obc)
1335        throws NoSuchMessageFlagException, SystemException {
1336        MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
1337
1338        int count = countByT_F(threadId, flag);
1339
1340        Session session = null;
1341
1342        try {
1343            session = openSession();
1344
1345            StringBundler query = null;
1346
1347            if (obc != null) {
1348                query = new StringBundler(4 +
1349                        (obc.getOrderByFields().length * 3));
1350            }
1351            else {
1352                query = new StringBundler(3);
1353            }
1354
1355            query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1356
1357            query.append(_FINDER_COLUMN_T_F_THREADID_2);
1358
1359            query.append(_FINDER_COLUMN_T_F_FLAG_2);
1360
1361            if (obc != null) {
1362                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1363            }
1364
1365            String sql = query.toString();
1366
1367            Query q = session.createQuery(sql);
1368
1369            QueryPos qPos = QueryPos.getInstance(q);
1370
1371            qPos.add(threadId);
1372
1373            qPos.add(flag);
1374
1375            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1376                    mbMessageFlag);
1377
1378            MBMessageFlag[] array = new MBMessageFlagImpl[3];
1379
1380            array[0] = (MBMessageFlag)objArray[0];
1381            array[1] = (MBMessageFlag)objArray[1];
1382            array[2] = (MBMessageFlag)objArray[2];
1383
1384            return array;
1385        }
1386        catch (Exception e) {
1387            throw processException(e);
1388        }
1389        finally {
1390            closeSession(session);
1391        }
1392    }
1393
1394    public List<MBMessageFlag> findByM_F(long messageId, int flag)
1395        throws SystemException {
1396        Object[] finderArgs = new Object[] {
1397                new Long(messageId), new Integer(flag)
1398            };
1399
1400        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_M_F,
1401                finderArgs, this);
1402
1403        if (list == null) {
1404            Session session = null;
1405
1406            try {
1407                session = openSession();
1408
1409                StringBundler query = new StringBundler(3);
1410
1411                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1412
1413                query.append(_FINDER_COLUMN_M_F_MESSAGEID_2);
1414
1415                query.append(_FINDER_COLUMN_M_F_FLAG_2);
1416
1417                String sql = query.toString();
1418
1419                Query q = session.createQuery(sql);
1420
1421                QueryPos qPos = QueryPos.getInstance(q);
1422
1423                qPos.add(messageId);
1424
1425                qPos.add(flag);
1426
1427                list = q.list();
1428            }
1429            catch (Exception e) {
1430                throw processException(e);
1431            }
1432            finally {
1433                if (list == null) {
1434                    list = new ArrayList<MBMessageFlag>();
1435                }
1436
1437                cacheResult(list);
1438
1439                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_M_F, finderArgs,
1440                    list);
1441
1442                closeSession(session);
1443            }
1444        }
1445
1446        return list;
1447    }
1448
1449    public List<MBMessageFlag> findByM_F(long messageId, int flag, int start,
1450        int end) throws SystemException {
1451        return findByM_F(messageId, flag, start, end, null);
1452    }
1453
1454    public List<MBMessageFlag> findByM_F(long messageId, int flag, int start,
1455        int end, OrderByComparator obc) throws SystemException {
1456        Object[] finderArgs = new Object[] {
1457                new Long(messageId), new Integer(flag),
1458                
1459                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1460            };
1461
1462        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_M_F,
1463                finderArgs, this);
1464
1465        if (list == null) {
1466            Session session = null;
1467
1468            try {
1469                session = openSession();
1470
1471                StringBundler query = null;
1472
1473                if (obc != null) {
1474                    query = new StringBundler(4 +
1475                            (obc.getOrderByFields().length * 3));
1476                }
1477                else {
1478                    query = new StringBundler(3);
1479                }
1480
1481                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1482
1483                query.append(_FINDER_COLUMN_M_F_MESSAGEID_2);
1484
1485                query.append(_FINDER_COLUMN_M_F_FLAG_2);
1486
1487                if (obc != null) {
1488                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1489                }
1490
1491                String sql = query.toString();
1492
1493                Query q = session.createQuery(sql);
1494
1495                QueryPos qPos = QueryPos.getInstance(q);
1496
1497                qPos.add(messageId);
1498
1499                qPos.add(flag);
1500
1501                list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
1502                        start, end);
1503            }
1504            catch (Exception e) {
1505                throw processException(e);
1506            }
1507            finally {
1508                if (list == null) {
1509                    list = new ArrayList<MBMessageFlag>();
1510                }
1511
1512                cacheResult(list);
1513
1514                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_M_F,
1515                    finderArgs, list);
1516
1517                closeSession(session);
1518            }
1519        }
1520
1521        return list;
1522    }
1523
1524    public MBMessageFlag findByM_F_First(long messageId, int flag,
1525        OrderByComparator obc)
1526        throws NoSuchMessageFlagException, SystemException {
1527        List<MBMessageFlag> list = findByM_F(messageId, flag, 0, 1, obc);
1528
1529        if (list.isEmpty()) {
1530            StringBundler msg = new StringBundler(6);
1531
1532            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1533
1534            msg.append("messageId=");
1535            msg.append(messageId);
1536
1537            msg.append(", flag=");
1538            msg.append(flag);
1539
1540            msg.append(StringPool.CLOSE_CURLY_BRACE);
1541
1542            throw new NoSuchMessageFlagException(msg.toString());
1543        }
1544        else {
1545            return list.get(0);
1546        }
1547    }
1548
1549    public MBMessageFlag findByM_F_Last(long messageId, int flag,
1550        OrderByComparator obc)
1551        throws NoSuchMessageFlagException, SystemException {
1552        int count = countByM_F(messageId, flag);
1553
1554        List<MBMessageFlag> list = findByM_F(messageId, flag, count - 1, count,
1555                obc);
1556
1557        if (list.isEmpty()) {
1558            StringBundler msg = new StringBundler(6);
1559
1560            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1561
1562            msg.append("messageId=");
1563            msg.append(messageId);
1564
1565            msg.append(", flag=");
1566            msg.append(flag);
1567
1568            msg.append(StringPool.CLOSE_CURLY_BRACE);
1569
1570            throw new NoSuchMessageFlagException(msg.toString());
1571        }
1572        else {
1573            return list.get(0);
1574        }
1575    }
1576
1577    public MBMessageFlag[] findByM_F_PrevAndNext(long messageFlagId,
1578        long messageId, int flag, OrderByComparator obc)
1579        throws NoSuchMessageFlagException, SystemException {
1580        MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
1581
1582        int count = countByM_F(messageId, flag);
1583
1584        Session session = null;
1585
1586        try {
1587            session = openSession();
1588
1589            StringBundler query = null;
1590
1591            if (obc != null) {
1592                query = new StringBundler(4 +
1593                        (obc.getOrderByFields().length * 3));
1594            }
1595            else {
1596                query = new StringBundler(3);
1597            }
1598
1599            query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1600
1601            query.append(_FINDER_COLUMN_M_F_MESSAGEID_2);
1602
1603            query.append(_FINDER_COLUMN_M_F_FLAG_2);
1604
1605            if (obc != null) {
1606                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1607            }
1608
1609            String sql = query.toString();
1610
1611            Query q = session.createQuery(sql);
1612
1613            QueryPos qPos = QueryPos.getInstance(q);
1614
1615            qPos.add(messageId);
1616
1617            qPos.add(flag);
1618
1619            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1620                    mbMessageFlag);
1621
1622            MBMessageFlag[] array = new MBMessageFlagImpl[3];
1623
1624            array[0] = (MBMessageFlag)objArray[0];
1625            array[1] = (MBMessageFlag)objArray[1];
1626            array[2] = (MBMessageFlag)objArray[2];
1627
1628            return array;
1629        }
1630        catch (Exception e) {
1631            throw processException(e);
1632        }
1633        finally {
1634            closeSession(session);
1635        }
1636    }
1637
1638    public List<MBMessageFlag> findByU_T_F(long userId, long threadId, int flag)
1639        throws SystemException {
1640        Object[] finderArgs = new Object[] {
1641                new Long(userId), new Long(threadId), new Integer(flag)
1642            };
1643
1644        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_U_T_F,
1645                finderArgs, this);
1646
1647        if (list == null) {
1648            Session session = null;
1649
1650            try {
1651                session = openSession();
1652
1653                StringBundler query = new StringBundler(4);
1654
1655                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1656
1657                query.append(_FINDER_COLUMN_U_T_F_USERID_2);
1658
1659                query.append(_FINDER_COLUMN_U_T_F_THREADID_2);
1660
1661                query.append(_FINDER_COLUMN_U_T_F_FLAG_2);
1662
1663                String sql = query.toString();
1664
1665                Query q = session.createQuery(sql);
1666
1667                QueryPos qPos = QueryPos.getInstance(q);
1668
1669                qPos.add(userId);
1670
1671                qPos.add(threadId);
1672
1673                qPos.add(flag);
1674
1675                list = q.list();
1676            }
1677            catch (Exception e) {
1678                throw processException(e);
1679            }
1680            finally {
1681                if (list == null) {
1682                    list = new ArrayList<MBMessageFlag>();
1683                }
1684
1685                cacheResult(list);
1686
1687                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_U_T_F,
1688                    finderArgs, list);
1689
1690                closeSession(session);
1691            }
1692        }
1693
1694        return list;
1695    }
1696
1697    public List<MBMessageFlag> findByU_T_F(long userId, long threadId,
1698        int flag, int start, int end) throws SystemException {
1699        return findByU_T_F(userId, threadId, flag, start, end, null);
1700    }
1701
1702    public List<MBMessageFlag> findByU_T_F(long userId, long threadId,
1703        int flag, int start, int end, OrderByComparator obc)
1704        throws SystemException {
1705        Object[] finderArgs = new Object[] {
1706                new Long(userId), new Long(threadId), new Integer(flag),
1707                
1708                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1709            };
1710
1711        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_U_T_F,
1712                finderArgs, this);
1713
1714        if (list == null) {
1715            Session session = null;
1716
1717            try {
1718                session = openSession();
1719
1720                StringBundler query = null;
1721
1722                if (obc != null) {
1723                    query = new StringBundler(5 +
1724                            (obc.getOrderByFields().length * 3));
1725                }
1726                else {
1727                    query = new StringBundler(4);
1728                }
1729
1730                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1731
1732                query.append(_FINDER_COLUMN_U_T_F_USERID_2);
1733
1734                query.append(_FINDER_COLUMN_U_T_F_THREADID_2);
1735
1736                query.append(_FINDER_COLUMN_U_T_F_FLAG_2);
1737
1738                if (obc != null) {
1739                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1740                }
1741
1742                String sql = query.toString();
1743
1744                Query q = session.createQuery(sql);
1745
1746                QueryPos qPos = QueryPos.getInstance(q);
1747
1748                qPos.add(userId);
1749
1750                qPos.add(threadId);
1751
1752                qPos.add(flag);
1753
1754                list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
1755                        start, end);
1756            }
1757            catch (Exception e) {
1758                throw processException(e);
1759            }
1760            finally {
1761                if (list == null) {
1762                    list = new ArrayList<MBMessageFlag>();
1763                }
1764
1765                cacheResult(list);
1766
1767                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_U_T_F,
1768                    finderArgs, list);
1769
1770                closeSession(session);
1771            }
1772        }
1773
1774        return list;
1775    }
1776
1777    public MBMessageFlag findByU_T_F_First(long userId, long threadId,
1778        int flag, OrderByComparator obc)
1779        throws NoSuchMessageFlagException, SystemException {
1780        List<MBMessageFlag> list = findByU_T_F(userId, threadId, flag, 0, 1, obc);
1781
1782        if (list.isEmpty()) {
1783            StringBundler msg = new StringBundler(8);
1784
1785            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1786
1787            msg.append("userId=");
1788            msg.append(userId);
1789
1790            msg.append(", threadId=");
1791            msg.append(threadId);
1792
1793            msg.append(", flag=");
1794            msg.append(flag);
1795
1796            msg.append(StringPool.CLOSE_CURLY_BRACE);
1797
1798            throw new NoSuchMessageFlagException(msg.toString());
1799        }
1800        else {
1801            return list.get(0);
1802        }
1803    }
1804
1805    public MBMessageFlag findByU_T_F_Last(long userId, long threadId, int flag,
1806        OrderByComparator obc)
1807        throws NoSuchMessageFlagException, SystemException {
1808        int count = countByU_T_F(userId, threadId, flag);
1809
1810        List<MBMessageFlag> list = findByU_T_F(userId, threadId, flag,
1811                count - 1, count, obc);
1812
1813        if (list.isEmpty()) {
1814            StringBundler msg = new StringBundler(8);
1815
1816            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1817
1818            msg.append("userId=");
1819            msg.append(userId);
1820
1821            msg.append(", threadId=");
1822            msg.append(threadId);
1823
1824            msg.append(", flag=");
1825            msg.append(flag);
1826
1827            msg.append(StringPool.CLOSE_CURLY_BRACE);
1828
1829            throw new NoSuchMessageFlagException(msg.toString());
1830        }
1831        else {
1832            return list.get(0);
1833        }
1834    }
1835
1836    public MBMessageFlag[] findByU_T_F_PrevAndNext(long messageFlagId,
1837        long userId, long threadId, int flag, OrderByComparator obc)
1838        throws NoSuchMessageFlagException, SystemException {
1839        MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
1840
1841        int count = countByU_T_F(userId, threadId, flag);
1842
1843        Session session = null;
1844
1845        try {
1846            session = openSession();
1847
1848            StringBundler query = null;
1849
1850            if (obc != null) {
1851                query = new StringBundler(5 +
1852                        (obc.getOrderByFields().length * 3));
1853            }
1854            else {
1855                query = new StringBundler(4);
1856            }
1857
1858            query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1859
1860            query.append(_FINDER_COLUMN_U_T_F_USERID_2);
1861
1862            query.append(_FINDER_COLUMN_U_T_F_THREADID_2);
1863
1864            query.append(_FINDER_COLUMN_U_T_F_FLAG_2);
1865
1866            if (obc != null) {
1867                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1868            }
1869
1870            String sql = query.toString();
1871
1872            Query q = session.createQuery(sql);
1873
1874            QueryPos qPos = QueryPos.getInstance(q);
1875
1876            qPos.add(userId);
1877
1878            qPos.add(threadId);
1879
1880            qPos.add(flag);
1881
1882            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1883                    mbMessageFlag);
1884
1885            MBMessageFlag[] array = new MBMessageFlagImpl[3];
1886
1887            array[0] = (MBMessageFlag)objArray[0];
1888            array[1] = (MBMessageFlag)objArray[1];
1889            array[2] = (MBMessageFlag)objArray[2];
1890
1891            return array;
1892        }
1893        catch (Exception e) {
1894            throw processException(e);
1895        }
1896        finally {
1897            closeSession(session);
1898        }
1899    }
1900
1901    public MBMessageFlag findByU_M_F(long userId, long messageId, int flag)
1902        throws NoSuchMessageFlagException, SystemException {
1903        MBMessageFlag mbMessageFlag = fetchByU_M_F(userId, messageId, flag);
1904
1905        if (mbMessageFlag == null) {
1906            StringBundler msg = new StringBundler(8);
1907
1908            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1909
1910            msg.append("userId=");
1911            msg.append(userId);
1912
1913            msg.append(", messageId=");
1914            msg.append(messageId);
1915
1916            msg.append(", flag=");
1917            msg.append(flag);
1918
1919            msg.append(StringPool.CLOSE_CURLY_BRACE);
1920
1921            if (_log.isWarnEnabled()) {
1922                _log.warn(msg.toString());
1923            }
1924
1925            throw new NoSuchMessageFlagException(msg.toString());
1926        }
1927
1928        return mbMessageFlag;
1929    }
1930
1931    public MBMessageFlag fetchByU_M_F(long userId, long messageId, int flag)
1932        throws SystemException {
1933        return fetchByU_M_F(userId, messageId, flag, true);
1934    }
1935
1936    public MBMessageFlag fetchByU_M_F(long userId, long messageId, int flag,
1937        boolean retrieveFromCache) throws SystemException {
1938        Object[] finderArgs = new Object[] {
1939                new Long(userId), new Long(messageId), new Integer(flag)
1940            };
1941
1942        Object result = null;
1943
1944        if (retrieveFromCache) {
1945            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_U_M_F,
1946                    finderArgs, this);
1947        }
1948
1949        if (result == null) {
1950            Session session = null;
1951
1952            try {
1953                session = openSession();
1954
1955                StringBundler query = new StringBundler(4);
1956
1957                query.append(_SQL_SELECT_MBMESSAGEFLAG_WHERE);
1958
1959                query.append(_FINDER_COLUMN_U_M_F_USERID_2);
1960
1961                query.append(_FINDER_COLUMN_U_M_F_MESSAGEID_2);
1962
1963                query.append(_FINDER_COLUMN_U_M_F_FLAG_2);
1964
1965                String sql = query.toString();
1966
1967                Query q = session.createQuery(sql);
1968
1969                QueryPos qPos = QueryPos.getInstance(q);
1970
1971                qPos.add(userId);
1972
1973                qPos.add(messageId);
1974
1975                qPos.add(flag);
1976
1977                List<MBMessageFlag> list = q.list();
1978
1979                result = list;
1980
1981                MBMessageFlag mbMessageFlag = null;
1982
1983                if (list.isEmpty()) {
1984                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_M_F,
1985                        finderArgs, list);
1986                }
1987                else {
1988                    mbMessageFlag = list.get(0);
1989
1990                    cacheResult(mbMessageFlag);
1991
1992                    if ((mbMessageFlag.getUserId() != userId) ||
1993                            (mbMessageFlag.getMessageId() != messageId) ||
1994                            (mbMessageFlag.getFlag() != flag)) {
1995                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_M_F,
1996                            finderArgs, mbMessageFlag);
1997                    }
1998                }
1999
2000                return mbMessageFlag;
2001            }
2002            catch (Exception e) {
2003                throw processException(e);
2004            }
2005            finally {
2006                if (result == null) {
2007                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_M_F,
2008                        finderArgs, new ArrayList<MBMessageFlag>());
2009                }
2010
2011                closeSession(session);
2012            }
2013        }
2014        else {
2015            if (result instanceof List<?>) {
2016                return null;
2017            }
2018            else {
2019                return (MBMessageFlag)result;
2020            }
2021        }
2022    }
2023
2024    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
2025        throws SystemException {
2026        Session session = null;
2027
2028        try {
2029            session = openSession();
2030
2031            dynamicQuery.compile(session);
2032
2033            return dynamicQuery.list();
2034        }
2035        catch (Exception e) {
2036            throw processException(e);
2037        }
2038        finally {
2039            closeSession(session);
2040        }
2041    }
2042
2043    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
2044        int start, int end) throws SystemException {
2045        Session session = null;
2046
2047        try {
2048            session = openSession();
2049
2050            dynamicQuery.setLimit(start, end);
2051
2052            dynamicQuery.compile(session);
2053
2054            return dynamicQuery.list();
2055        }
2056        catch (Exception e) {
2057            throw processException(e);
2058        }
2059        finally {
2060            closeSession(session);
2061        }
2062    }
2063
2064    public List<MBMessageFlag> findAll() throws SystemException {
2065        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
2066    }
2067
2068    public List<MBMessageFlag> findAll(int start, int end)
2069        throws SystemException {
2070        return findAll(start, end, null);
2071    }
2072
2073    public List<MBMessageFlag> findAll(int start, int end, OrderByComparator obc)
2074        throws SystemException {
2075        Object[] finderArgs = new Object[] {
2076                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2077            };
2078
2079        List<MBMessageFlag> list = (List<MBMessageFlag>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
2080                finderArgs, this);
2081
2082        if (list == null) {
2083            Session session = null;
2084
2085            try {
2086                session = openSession();
2087
2088                StringBundler query = null;
2089                String sql = null;
2090
2091                if (obc != null) {
2092                    query = new StringBundler(2 +
2093                            (obc.getOrderByFields().length * 3));
2094
2095                    query.append(_SQL_SELECT_MBMESSAGEFLAG);
2096
2097                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
2098
2099                    sql = query.toString();
2100                }
2101
2102                sql = _SQL_SELECT_MBMESSAGEFLAG;
2103
2104                Query q = session.createQuery(sql);
2105
2106                if (obc == null) {
2107                    list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
2108                            start, end, false);
2109
2110                    Collections.sort(list);
2111                }
2112                else {
2113                    list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
2114                            start, end);
2115                }
2116            }
2117            catch (Exception e) {
2118                throw processException(e);
2119            }
2120            finally {
2121                if (list == null) {
2122                    list = new ArrayList<MBMessageFlag>();
2123                }
2124
2125                cacheResult(list);
2126
2127                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
2128
2129                closeSession(session);
2130            }
2131        }
2132
2133        return list;
2134    }
2135
2136    public void removeByUserId(long userId) throws SystemException {
2137        for (MBMessageFlag mbMessageFlag : findByUserId(userId)) {
2138            remove(mbMessageFlag);
2139        }
2140    }
2141
2142    public void removeByThreadId(long threadId) throws SystemException {
2143        for (MBMessageFlag mbMessageFlag : findByThreadId(threadId)) {
2144            remove(mbMessageFlag);
2145        }
2146    }
2147
2148    public void removeByMessageId(long messageId) throws SystemException {
2149        for (MBMessageFlag mbMessageFlag : findByMessageId(messageId)) {
2150            remove(mbMessageFlag);
2151        }
2152    }
2153
2154    public void removeByT_F(long threadId, int flag) throws SystemException {
2155        for (MBMessageFlag mbMessageFlag : findByT_F(threadId, flag)) {
2156            remove(mbMessageFlag);
2157        }
2158    }
2159
2160    public void removeByM_F(long messageId, int flag) throws SystemException {
2161        for (MBMessageFlag mbMessageFlag : findByM_F(messageId, flag)) {
2162            remove(mbMessageFlag);
2163        }
2164    }
2165
2166    public void removeByU_T_F(long userId, long threadId, int flag)
2167        throws SystemException {
2168        for (MBMessageFlag mbMessageFlag : findByU_T_F(userId, threadId, flag)) {
2169            remove(mbMessageFlag);
2170        }
2171    }
2172
2173    public void removeByU_M_F(long userId, long messageId, int flag)
2174        throws NoSuchMessageFlagException, SystemException {
2175        MBMessageFlag mbMessageFlag = findByU_M_F(userId, messageId, flag);
2176
2177        remove(mbMessageFlag);
2178    }
2179
2180    public void removeAll() throws SystemException {
2181        for (MBMessageFlag mbMessageFlag : findAll()) {
2182            remove(mbMessageFlag);
2183        }
2184    }
2185
2186    public int countByUserId(long userId) throws SystemException {
2187        Object[] finderArgs = new Object[] { new Long(userId) };
2188
2189        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_USERID,
2190                finderArgs, this);
2191
2192        if (count == null) {
2193            Session session = null;
2194
2195            try {
2196                session = openSession();
2197
2198                StringBundler query = new StringBundler(2);
2199
2200                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2201
2202                query.append(_FINDER_COLUMN_USERID_USERID_2);
2203
2204                String sql = query.toString();
2205
2206                Query q = session.createQuery(sql);
2207
2208                QueryPos qPos = QueryPos.getInstance(q);
2209
2210                qPos.add(userId);
2211
2212                count = (Long)q.uniqueResult();
2213            }
2214            catch (Exception e) {
2215                throw processException(e);
2216            }
2217            finally {
2218                if (count == null) {
2219                    count = Long.valueOf(0);
2220                }
2221
2222                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_USERID,
2223                    finderArgs, count);
2224
2225                closeSession(session);
2226            }
2227        }
2228
2229        return count.intValue();
2230    }
2231
2232    public int countByThreadId(long threadId) throws SystemException {
2233        Object[] finderArgs = new Object[] { new Long(threadId) };
2234
2235        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_THREADID,
2236                finderArgs, this);
2237
2238        if (count == null) {
2239            Session session = null;
2240
2241            try {
2242                session = openSession();
2243
2244                StringBundler query = new StringBundler(2);
2245
2246                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2247
2248                query.append(_FINDER_COLUMN_THREADID_THREADID_2);
2249
2250                String sql = query.toString();
2251
2252                Query q = session.createQuery(sql);
2253
2254                QueryPos qPos = QueryPos.getInstance(q);
2255
2256                qPos.add(threadId);
2257
2258                count = (Long)q.uniqueResult();
2259            }
2260            catch (Exception e) {
2261                throw processException(e);
2262            }
2263            finally {
2264                if (count == null) {
2265                    count = Long.valueOf(0);
2266                }
2267
2268                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_THREADID,
2269                    finderArgs, count);
2270
2271                closeSession(session);
2272            }
2273        }
2274
2275        return count.intValue();
2276    }
2277
2278    public int countByMessageId(long messageId) throws SystemException {
2279        Object[] finderArgs = new Object[] { new Long(messageId) };
2280
2281        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_MESSAGEID,
2282                finderArgs, this);
2283
2284        if (count == null) {
2285            Session session = null;
2286
2287            try {
2288                session = openSession();
2289
2290                StringBundler query = new StringBundler(2);
2291
2292                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2293
2294                query.append(_FINDER_COLUMN_MESSAGEID_MESSAGEID_2);
2295
2296                String sql = query.toString();
2297
2298                Query q = session.createQuery(sql);
2299
2300                QueryPos qPos = QueryPos.getInstance(q);
2301
2302                qPos.add(messageId);
2303
2304                count = (Long)q.uniqueResult();
2305            }
2306            catch (Exception e) {
2307                throw processException(e);
2308            }
2309            finally {
2310                if (count == null) {
2311                    count = Long.valueOf(0);
2312                }
2313
2314                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_MESSAGEID,
2315                    finderArgs, count);
2316
2317                closeSession(session);
2318            }
2319        }
2320
2321        return count.intValue();
2322    }
2323
2324    public int countByT_F(long threadId, int flag) throws SystemException {
2325        Object[] finderArgs = new Object[] { new Long(threadId), new Integer(flag) };
2326
2327        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_T_F,
2328                finderArgs, this);
2329
2330        if (count == null) {
2331            Session session = null;
2332
2333            try {
2334                session = openSession();
2335
2336                StringBundler query = new StringBundler(3);
2337
2338                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2339
2340                query.append(_FINDER_COLUMN_T_F_THREADID_2);
2341
2342                query.append(_FINDER_COLUMN_T_F_FLAG_2);
2343
2344                String sql = query.toString();
2345
2346                Query q = session.createQuery(sql);
2347
2348                QueryPos qPos = QueryPos.getInstance(q);
2349
2350                qPos.add(threadId);
2351
2352                qPos.add(flag);
2353
2354                count = (Long)q.uniqueResult();
2355            }
2356            catch (Exception e) {
2357                throw processException(e);
2358            }
2359            finally {
2360                if (count == null) {
2361                    count = Long.valueOf(0);
2362                }
2363
2364                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_T_F, finderArgs,
2365                    count);
2366
2367                closeSession(session);
2368            }
2369        }
2370
2371        return count.intValue();
2372    }
2373
2374    public int countByM_F(long messageId, int flag) throws SystemException {
2375        Object[] finderArgs = new Object[] {
2376                new Long(messageId), new Integer(flag)
2377            };
2378
2379        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_M_F,
2380                finderArgs, this);
2381
2382        if (count == null) {
2383            Session session = null;
2384
2385            try {
2386                session = openSession();
2387
2388                StringBundler query = new StringBundler(3);
2389
2390                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2391
2392                query.append(_FINDER_COLUMN_M_F_MESSAGEID_2);
2393
2394                query.append(_FINDER_COLUMN_M_F_FLAG_2);
2395
2396                String sql = query.toString();
2397
2398                Query q = session.createQuery(sql);
2399
2400                QueryPos qPos = QueryPos.getInstance(q);
2401
2402                qPos.add(messageId);
2403
2404                qPos.add(flag);
2405
2406                count = (Long)q.uniqueResult();
2407            }
2408            catch (Exception e) {
2409                throw processException(e);
2410            }
2411            finally {
2412                if (count == null) {
2413                    count = Long.valueOf(0);
2414                }
2415
2416                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_M_F, finderArgs,
2417                    count);
2418
2419                closeSession(session);
2420            }
2421        }
2422
2423        return count.intValue();
2424    }
2425
2426    public int countByU_T_F(long userId, long threadId, int flag)
2427        throws SystemException {
2428        Object[] finderArgs = new Object[] {
2429                new Long(userId), new Long(threadId), new Integer(flag)
2430            };
2431
2432        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_U_T_F,
2433                finderArgs, this);
2434
2435        if (count == null) {
2436            Session session = null;
2437
2438            try {
2439                session = openSession();
2440
2441                StringBundler query = new StringBundler(4);
2442
2443                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2444
2445                query.append(_FINDER_COLUMN_U_T_F_USERID_2);
2446
2447                query.append(_FINDER_COLUMN_U_T_F_THREADID_2);
2448
2449                query.append(_FINDER_COLUMN_U_T_F_FLAG_2);
2450
2451                String sql = query.toString();
2452
2453                Query q = session.createQuery(sql);
2454
2455                QueryPos qPos = QueryPos.getInstance(q);
2456
2457                qPos.add(userId);
2458
2459                qPos.add(threadId);
2460
2461                qPos.add(flag);
2462
2463                count = (Long)q.uniqueResult();
2464            }
2465            catch (Exception e) {
2466                throw processException(e);
2467            }
2468            finally {
2469                if (count == null) {
2470                    count = Long.valueOf(0);
2471                }
2472
2473                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_U_T_F,
2474                    finderArgs, count);
2475
2476                closeSession(session);
2477            }
2478        }
2479
2480        return count.intValue();
2481    }
2482
2483    public int countByU_M_F(long userId, long messageId, int flag)
2484        throws SystemException {
2485        Object[] finderArgs = new Object[] {
2486                new Long(userId), new Long(messageId), new Integer(flag)
2487            };
2488
2489        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_U_M_F,
2490                finderArgs, this);
2491
2492        if (count == null) {
2493            Session session = null;
2494
2495            try {
2496                session = openSession();
2497
2498                StringBundler query = new StringBundler(4);
2499
2500                query.append(_SQL_COUNT_MBMESSAGEFLAG_WHERE);
2501
2502                query.append(_FINDER_COLUMN_U_M_F_USERID_2);
2503
2504                query.append(_FINDER_COLUMN_U_M_F_MESSAGEID_2);
2505
2506                query.append(_FINDER_COLUMN_U_M_F_FLAG_2);
2507
2508                String sql = query.toString();
2509
2510                Query q = session.createQuery(sql);
2511
2512                QueryPos qPos = QueryPos.getInstance(q);
2513
2514                qPos.add(userId);
2515
2516                qPos.add(messageId);
2517
2518                qPos.add(flag);
2519
2520                count = (Long)q.uniqueResult();
2521            }
2522            catch (Exception e) {
2523                throw processException(e);
2524            }
2525            finally {
2526                if (count == null) {
2527                    count = Long.valueOf(0);
2528                }
2529
2530                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_U_M_F,
2531                    finderArgs, count);
2532
2533                closeSession(session);
2534            }
2535        }
2536
2537        return count.intValue();
2538    }
2539
2540    public int countAll() throws SystemException {
2541        Object[] finderArgs = new Object[0];
2542
2543        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
2544                finderArgs, this);
2545
2546        if (count == null) {
2547            Session session = null;
2548
2549            try {
2550                session = openSession();
2551
2552                Query q = session.createQuery(_SQL_COUNT_MBMESSAGEFLAG);
2553
2554                count = (Long)q.uniqueResult();
2555            }
2556            catch (Exception e) {
2557                throw processException(e);
2558            }
2559            finally {
2560                if (count == null) {
2561                    count = Long.valueOf(0);
2562                }
2563
2564                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
2565                    count);
2566
2567                closeSession(session);
2568            }
2569        }
2570
2571        return count.intValue();
2572    }
2573
2574    public void afterPropertiesSet() {
2575        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
2576                    com.liferay.portal.util.PropsUtil.get(
2577                        "value.object.listener.com.liferay.portlet.messageboards.model.MBMessageFlag")));
2578
2579        if (listenerClassNames.length > 0) {
2580            try {
2581                List<ModelListener<MBMessageFlag>> listenersList = new ArrayList<ModelListener<MBMessageFlag>>();
2582
2583                for (String listenerClassName : listenerClassNames) {
2584                    listenersList.add((ModelListener<MBMessageFlag>)Class.forName(
2585                            listenerClassName).newInstance());
2586                }
2587
2588                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
2589            }
2590            catch (Exception e) {
2591                _log.error(e);
2592            }
2593        }
2594    }
2595
2596    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBBanPersistence")
2597    protected com.liferay.portlet.messageboards.service.persistence.MBBanPersistence mbBanPersistence;
2598    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBCategoryPersistence")
2599    protected com.liferay.portlet.messageboards.service.persistence.MBCategoryPersistence mbCategoryPersistence;
2600    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBDiscussionPersistence")
2601    protected com.liferay.portlet.messageboards.service.persistence.MBDiscussionPersistence mbDiscussionPersistence;
2602    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence")
2603    protected com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence mbMessagePersistence;
2604    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBMessageFlagPersistence")
2605    protected com.liferay.portlet.messageboards.service.persistence.MBMessageFlagPersistence mbMessageFlagPersistence;
2606    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBStatsUserPersistence")
2607    protected com.liferay.portlet.messageboards.service.persistence.MBStatsUserPersistence mbStatsUserPersistence;
2608    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBThreadPersistence")
2609    protected com.liferay.portlet.messageboards.service.persistence.MBThreadPersistence mbThreadPersistence;
2610    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
2611    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
2612    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
2613    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
2614    private static final String _SQL_SELECT_MBMESSAGEFLAG = "SELECT mbMessageFlag FROM MBMessageFlag mbMessageFlag";
2615    private static final String _SQL_SELECT_MBMESSAGEFLAG_WHERE = "SELECT mbMessageFlag FROM MBMessageFlag mbMessageFlag WHERE ";
2616    private static final String _SQL_COUNT_MBMESSAGEFLAG = "SELECT COUNT(mbMessageFlag) FROM MBMessageFlag mbMessageFlag";
2617    private static final String _SQL_COUNT_MBMESSAGEFLAG_WHERE = "SELECT COUNT(mbMessageFlag) FROM MBMessageFlag mbMessageFlag WHERE ";
2618    private static final String _FINDER_COLUMN_USERID_USERID_2 = "mbMessageFlag.userId = ?";
2619    private static final String _FINDER_COLUMN_THREADID_THREADID_2 = "mbMessageFlag.threadId = ?";
2620    private static final String _FINDER_COLUMN_MESSAGEID_MESSAGEID_2 = "mbMessageFlag.messageId = ?";
2621    private static final String _FINDER_COLUMN_T_F_THREADID_2 = "mbMessageFlag.threadId = ? AND ";
2622    private static final String _FINDER_COLUMN_T_F_FLAG_2 = "mbMessageFlag.flag = ?";
2623    private static final String _FINDER_COLUMN_M_F_MESSAGEID_2 = "mbMessageFlag.messageId = ? AND ";
2624    private static final String _FINDER_COLUMN_M_F_FLAG_2 = "mbMessageFlag.flag = ?";
2625    private static final String _FINDER_COLUMN_U_T_F_USERID_2 = "mbMessageFlag.userId = ? AND ";
2626    private static final String _FINDER_COLUMN_U_T_F_THREADID_2 = "mbMessageFlag.threadId = ? AND ";
2627    private static final String _FINDER_COLUMN_U_T_F_FLAG_2 = "mbMessageFlag.flag = ?";
2628    private static final String _FINDER_COLUMN_U_M_F_USERID_2 = "mbMessageFlag.userId = ? AND ";
2629    private static final String _FINDER_COLUMN_U_M_F_MESSAGEID_2 = "mbMessageFlag.messageId = ? AND ";
2630    private static final String _FINDER_COLUMN_U_M_F_FLAG_2 = "mbMessageFlag.flag = ?";
2631    private static final String _ORDER_BY_ENTITY_ALIAS = "mbMessageFlag.";
2632    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No MBMessageFlag exists with the primary key ";
2633    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No MBMessageFlag exists with the key {";
2634    private static Log _log = LogFactoryUtil.getLog(MBMessageFlagPersistenceImpl.class);
2635}