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