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