1   /**
2    * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions 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.portal.service.persistence;
24  
25  import com.liferay.portal.NoSuchMembershipRequestException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.dao.DynamicQuery;
28  import com.liferay.portal.kernel.dao.DynamicQueryInitializer;
29  import com.liferay.portal.kernel.util.GetterUtil;
30  import com.liferay.portal.kernel.util.OrderByComparator;
31  import com.liferay.portal.kernel.util.StringMaker;
32  import com.liferay.portal.kernel.util.StringPool;
33  import com.liferay.portal.kernel.util.Validator;
34  import com.liferay.portal.model.MembershipRequest;
35  import com.liferay.portal.model.ModelListener;
36  import com.liferay.portal.model.impl.MembershipRequestImpl;
37  import com.liferay.portal.model.impl.MembershipRequestModelImpl;
38  import com.liferay.portal.spring.hibernate.FinderCache;
39  import com.liferay.portal.spring.hibernate.HibernateUtil;
40  import com.liferay.portal.util.PropsUtil;
41  
42  import com.liferay.util.dao.hibernate.QueryUtil;
43  
44  import org.apache.commons.logging.Log;
45  import org.apache.commons.logging.LogFactory;
46  
47  import org.hibernate.Query;
48  import org.hibernate.Session;
49  
50  import java.util.Collections;
51  import java.util.Iterator;
52  import java.util.List;
53  
54  /**
55   * <a href="MembershipRequestPersistenceImpl.java.html"><b><i>View Source</i></b></a>
56   *
57   * @author Brian Wing Shun Chan
58   *
59   */
60  public class MembershipRequestPersistenceImpl extends BasePersistence
61      implements MembershipRequestPersistence {
62      public MembershipRequest create(long membershipRequestId) {
63          MembershipRequest membershipRequest = new MembershipRequestImpl();
64  
65          membershipRequest.setNew(true);
66          membershipRequest.setPrimaryKey(membershipRequestId);
67  
68          return membershipRequest;
69      }
70  
71      public MembershipRequest remove(long membershipRequestId)
72          throws NoSuchMembershipRequestException, SystemException {
73          Session session = null;
74  
75          try {
76              session = openSession();
77  
78              MembershipRequest membershipRequest = (MembershipRequest)session.get(MembershipRequestImpl.class,
79                      new Long(membershipRequestId));
80  
81              if (membershipRequest == null) {
82                  if (_log.isWarnEnabled()) {
83                      _log.warn(
84                          "No MembershipRequest exists with the primary key " +
85                          membershipRequestId);
86                  }
87  
88                  throw new NoSuchMembershipRequestException(
89                      "No MembershipRequest exists with the primary key " +
90                      membershipRequestId);
91              }
92  
93              return remove(membershipRequest);
94          }
95          catch (NoSuchMembershipRequestException nsee) {
96              throw nsee;
97          }
98          catch (Exception e) {
99              throw HibernateUtil.processException(e);
100         }
101         finally {
102             closeSession(session);
103         }
104     }
105 
106     public MembershipRequest remove(MembershipRequest membershipRequest)
107         throws SystemException {
108         ModelListener listener = _getListener();
109 
110         if (listener != null) {
111             listener.onBeforeRemove(membershipRequest);
112         }
113 
114         membershipRequest = removeImpl(membershipRequest);
115 
116         if (listener != null) {
117             listener.onAfterRemove(membershipRequest);
118         }
119 
120         return membershipRequest;
121     }
122 
123     protected MembershipRequest removeImpl(MembershipRequest membershipRequest)
124         throws SystemException {
125         Session session = null;
126 
127         try {
128             session = openSession();
129 
130             session.delete(membershipRequest);
131 
132             session.flush();
133 
134             return membershipRequest;
135         }
136         catch (Exception e) {
137             throw HibernateUtil.processException(e);
138         }
139         finally {
140             closeSession(session);
141 
142             FinderCache.clearCache(MembershipRequest.class.getName());
143         }
144     }
145 
146     public MembershipRequest update(MembershipRequest membershipRequest)
147         throws SystemException {
148         return update(membershipRequest, false);
149     }
150 
151     public MembershipRequest update(MembershipRequest membershipRequest,
152         boolean merge) throws SystemException {
153         ModelListener listener = _getListener();
154 
155         boolean isNew = membershipRequest.isNew();
156 
157         if (listener != null) {
158             if (isNew) {
159                 listener.onBeforeCreate(membershipRequest);
160             }
161             else {
162                 listener.onBeforeUpdate(membershipRequest);
163             }
164         }
165 
166         membershipRequest = updateImpl(membershipRequest, merge);
167 
168         if (listener != null) {
169             if (isNew) {
170                 listener.onAfterCreate(membershipRequest);
171             }
172             else {
173                 listener.onAfterUpdate(membershipRequest);
174             }
175         }
176 
177         return membershipRequest;
178     }
179 
180     public MembershipRequest updateImpl(
181         com.liferay.portal.model.MembershipRequest membershipRequest,
182         boolean merge) throws SystemException {
183         Session session = null;
184 
185         try {
186             session = openSession();
187 
188             if (merge) {
189                 session.merge(membershipRequest);
190             }
191             else {
192                 if (membershipRequest.isNew()) {
193                     session.save(membershipRequest);
194                 }
195             }
196 
197             session.flush();
198 
199             membershipRequest.setNew(false);
200 
201             return membershipRequest;
202         }
203         catch (Exception e) {
204             throw HibernateUtil.processException(e);
205         }
206         finally {
207             closeSession(session);
208 
209             FinderCache.clearCache(MembershipRequest.class.getName());
210         }
211     }
212 
213     public MembershipRequest findByPrimaryKey(long membershipRequestId)
214         throws NoSuchMembershipRequestException, SystemException {
215         MembershipRequest membershipRequest = fetchByPrimaryKey(membershipRequestId);
216 
217         if (membershipRequest == null) {
218             if (_log.isWarnEnabled()) {
219                 _log.warn("No MembershipRequest exists with the primary key " +
220                     membershipRequestId);
221             }
222 
223             throw new NoSuchMembershipRequestException(
224                 "No MembershipRequest exists with the primary key " +
225                 membershipRequestId);
226         }
227 
228         return membershipRequest;
229     }
230 
231     public MembershipRequest fetchByPrimaryKey(long membershipRequestId)
232         throws SystemException {
233         Session session = null;
234 
235         try {
236             session = openSession();
237 
238             return (MembershipRequest)session.get(MembershipRequestImpl.class,
239                 new Long(membershipRequestId));
240         }
241         catch (Exception e) {
242             throw HibernateUtil.processException(e);
243         }
244         finally {
245             closeSession(session);
246         }
247     }
248 
249     public List findByGroupId(long groupId) throws SystemException {
250         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
251         String finderClassName = MembershipRequest.class.getName();
252         String finderMethodName = "findByGroupId";
253         String[] finderParams = new String[] { Long.class.getName() };
254         Object[] finderArgs = new Object[] { new Long(groupId) };
255 
256         Object result = null;
257 
258         if (finderClassNameCacheEnabled) {
259             result = FinderCache.getResult(finderClassName, finderMethodName,
260                     finderParams, finderArgs, getSessionFactory());
261         }
262 
263         if (result == null) {
264             Session session = null;
265 
266             try {
267                 session = openSession();
268 
269                 StringMaker query = new StringMaker();
270 
271                 query.append(
272                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
273 
274                 query.append("groupId = ?");
275 
276                 query.append(" ");
277 
278                 query.append("ORDER BY ");
279 
280                 query.append("createDate DESC");
281 
282                 Query q = session.createQuery(query.toString());
283 
284                 int queryPos = 0;
285 
286                 q.setLong(queryPos++, groupId);
287 
288                 List list = q.list();
289 
290                 FinderCache.putResult(finderClassNameCacheEnabled,
291                     finderClassName, finderMethodName, finderParams,
292                     finderArgs, list);
293 
294                 return list;
295             }
296             catch (Exception e) {
297                 throw HibernateUtil.processException(e);
298             }
299             finally {
300                 closeSession(session);
301             }
302         }
303         else {
304             return (List)result;
305         }
306     }
307 
308     public List findByGroupId(long groupId, int begin, int end)
309         throws SystemException {
310         return findByGroupId(groupId, begin, end, null);
311     }
312 
313     public List findByGroupId(long groupId, int begin, int end,
314         OrderByComparator obc) throws SystemException {
315         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
316         String finderClassName = MembershipRequest.class.getName();
317         String finderMethodName = "findByGroupId";
318         String[] finderParams = new String[] {
319                 Long.class.getName(),
320                 
321                 "java.lang.Integer", "java.lang.Integer",
322                 "com.liferay.portal.kernel.util.OrderByComparator"
323             };
324         Object[] finderArgs = new Object[] {
325                 new Long(groupId),
326                 
327                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
328             };
329 
330         Object result = null;
331 
332         if (finderClassNameCacheEnabled) {
333             result = FinderCache.getResult(finderClassName, finderMethodName,
334                     finderParams, finderArgs, getSessionFactory());
335         }
336 
337         if (result == null) {
338             Session session = null;
339 
340             try {
341                 session = openSession();
342 
343                 StringMaker query = new StringMaker();
344 
345                 query.append(
346                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
347 
348                 query.append("groupId = ?");
349 
350                 query.append(" ");
351 
352                 if (obc != null) {
353                     query.append("ORDER BY ");
354                     query.append(obc.getOrderBy());
355                 }
356 
357                 else {
358                     query.append("ORDER BY ");
359 
360                     query.append("createDate DESC");
361                 }
362 
363                 Query q = session.createQuery(query.toString());
364 
365                 int queryPos = 0;
366 
367                 q.setLong(queryPos++, groupId);
368 
369                 List list = QueryUtil.list(q, getDialect(), begin, end);
370 
371                 FinderCache.putResult(finderClassNameCacheEnabled,
372                     finderClassName, finderMethodName, finderParams,
373                     finderArgs, list);
374 
375                 return list;
376             }
377             catch (Exception e) {
378                 throw HibernateUtil.processException(e);
379             }
380             finally {
381                 closeSession(session);
382             }
383         }
384         else {
385             return (List)result;
386         }
387     }
388 
389     public MembershipRequest findByGroupId_First(long groupId,
390         OrderByComparator obc)
391         throws NoSuchMembershipRequestException, SystemException {
392         List list = findByGroupId(groupId, 0, 1, obc);
393 
394         if (list.size() == 0) {
395             StringMaker msg = new StringMaker();
396 
397             msg.append("No MembershipRequest exists with the key {");
398 
399             msg.append("groupId=" + groupId);
400 
401             msg.append(StringPool.CLOSE_CURLY_BRACE);
402 
403             throw new NoSuchMembershipRequestException(msg.toString());
404         }
405         else {
406             return (MembershipRequest)list.get(0);
407         }
408     }
409 
410     public MembershipRequest findByGroupId_Last(long groupId,
411         OrderByComparator obc)
412         throws NoSuchMembershipRequestException, SystemException {
413         int count = countByGroupId(groupId);
414 
415         List list = findByGroupId(groupId, count - 1, count, obc);
416 
417         if (list.size() == 0) {
418             StringMaker msg = new StringMaker();
419 
420             msg.append("No MembershipRequest exists with the key {");
421 
422             msg.append("groupId=" + groupId);
423 
424             msg.append(StringPool.CLOSE_CURLY_BRACE);
425 
426             throw new NoSuchMembershipRequestException(msg.toString());
427         }
428         else {
429             return (MembershipRequest)list.get(0);
430         }
431     }
432 
433     public MembershipRequest[] findByGroupId_PrevAndNext(
434         long membershipRequestId, long groupId, OrderByComparator obc)
435         throws NoSuchMembershipRequestException, SystemException {
436         MembershipRequest membershipRequest = findByPrimaryKey(membershipRequestId);
437 
438         int count = countByGroupId(groupId);
439 
440         Session session = null;
441 
442         try {
443             session = openSession();
444 
445             StringMaker query = new StringMaker();
446 
447             query.append(
448                 "FROM com.liferay.portal.model.MembershipRequest WHERE ");
449 
450             query.append("groupId = ?");
451 
452             query.append(" ");
453 
454             if (obc != null) {
455                 query.append("ORDER BY ");
456                 query.append(obc.getOrderBy());
457             }
458 
459             else {
460                 query.append("ORDER BY ");
461 
462                 query.append("createDate DESC");
463             }
464 
465             Query q = session.createQuery(query.toString());
466 
467             int queryPos = 0;
468 
469             q.setLong(queryPos++, groupId);
470 
471             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
472                     membershipRequest);
473 
474             MembershipRequest[] array = new MembershipRequestImpl[3];
475 
476             array[0] = (MembershipRequest)objArray[0];
477             array[1] = (MembershipRequest)objArray[1];
478             array[2] = (MembershipRequest)objArray[2];
479 
480             return array;
481         }
482         catch (Exception e) {
483             throw HibernateUtil.processException(e);
484         }
485         finally {
486             closeSession(session);
487         }
488     }
489 
490     public List findByUserId(long userId) throws SystemException {
491         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
492         String finderClassName = MembershipRequest.class.getName();
493         String finderMethodName = "findByUserId";
494         String[] finderParams = new String[] { Long.class.getName() };
495         Object[] finderArgs = new Object[] { new Long(userId) };
496 
497         Object result = null;
498 
499         if (finderClassNameCacheEnabled) {
500             result = FinderCache.getResult(finderClassName, finderMethodName,
501                     finderParams, finderArgs, getSessionFactory());
502         }
503 
504         if (result == null) {
505             Session session = null;
506 
507             try {
508                 session = openSession();
509 
510                 StringMaker query = new StringMaker();
511 
512                 query.append(
513                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
514 
515                 query.append("userId = ?");
516 
517                 query.append(" ");
518 
519                 query.append("ORDER BY ");
520 
521                 query.append("createDate DESC");
522 
523                 Query q = session.createQuery(query.toString());
524 
525                 int queryPos = 0;
526 
527                 q.setLong(queryPos++, userId);
528 
529                 List list = q.list();
530 
531                 FinderCache.putResult(finderClassNameCacheEnabled,
532                     finderClassName, finderMethodName, finderParams,
533                     finderArgs, list);
534 
535                 return list;
536             }
537             catch (Exception e) {
538                 throw HibernateUtil.processException(e);
539             }
540             finally {
541                 closeSession(session);
542             }
543         }
544         else {
545             return (List)result;
546         }
547     }
548 
549     public List findByUserId(long userId, int begin, int end)
550         throws SystemException {
551         return findByUserId(userId, begin, end, null);
552     }
553 
554     public List findByUserId(long userId, int begin, int end,
555         OrderByComparator obc) throws SystemException {
556         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
557         String finderClassName = MembershipRequest.class.getName();
558         String finderMethodName = "findByUserId";
559         String[] finderParams = new String[] {
560                 Long.class.getName(),
561                 
562                 "java.lang.Integer", "java.lang.Integer",
563                 "com.liferay.portal.kernel.util.OrderByComparator"
564             };
565         Object[] finderArgs = new Object[] {
566                 new Long(userId),
567                 
568                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
569             };
570 
571         Object result = null;
572 
573         if (finderClassNameCacheEnabled) {
574             result = FinderCache.getResult(finderClassName, finderMethodName,
575                     finderParams, finderArgs, getSessionFactory());
576         }
577 
578         if (result == null) {
579             Session session = null;
580 
581             try {
582                 session = openSession();
583 
584                 StringMaker query = new StringMaker();
585 
586                 query.append(
587                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
588 
589                 query.append("userId = ?");
590 
591                 query.append(" ");
592 
593                 if (obc != null) {
594                     query.append("ORDER BY ");
595                     query.append(obc.getOrderBy());
596                 }
597 
598                 else {
599                     query.append("ORDER BY ");
600 
601                     query.append("createDate DESC");
602                 }
603 
604                 Query q = session.createQuery(query.toString());
605 
606                 int queryPos = 0;
607 
608                 q.setLong(queryPos++, userId);
609 
610                 List list = QueryUtil.list(q, getDialect(), begin, end);
611 
612                 FinderCache.putResult(finderClassNameCacheEnabled,
613                     finderClassName, finderMethodName, finderParams,
614                     finderArgs, list);
615 
616                 return list;
617             }
618             catch (Exception e) {
619                 throw HibernateUtil.processException(e);
620             }
621             finally {
622                 closeSession(session);
623             }
624         }
625         else {
626             return (List)result;
627         }
628     }
629 
630     public MembershipRequest findByUserId_First(long userId,
631         OrderByComparator obc)
632         throws NoSuchMembershipRequestException, SystemException {
633         List list = findByUserId(userId, 0, 1, obc);
634 
635         if (list.size() == 0) {
636             StringMaker msg = new StringMaker();
637 
638             msg.append("No MembershipRequest exists with the key {");
639 
640             msg.append("userId=" + userId);
641 
642             msg.append(StringPool.CLOSE_CURLY_BRACE);
643 
644             throw new NoSuchMembershipRequestException(msg.toString());
645         }
646         else {
647             return (MembershipRequest)list.get(0);
648         }
649     }
650 
651     public MembershipRequest findByUserId_Last(long userId,
652         OrderByComparator obc)
653         throws NoSuchMembershipRequestException, SystemException {
654         int count = countByUserId(userId);
655 
656         List list = findByUserId(userId, count - 1, count, obc);
657 
658         if (list.size() == 0) {
659             StringMaker msg = new StringMaker();
660 
661             msg.append("No MembershipRequest exists with the key {");
662 
663             msg.append("userId=" + userId);
664 
665             msg.append(StringPool.CLOSE_CURLY_BRACE);
666 
667             throw new NoSuchMembershipRequestException(msg.toString());
668         }
669         else {
670             return (MembershipRequest)list.get(0);
671         }
672     }
673 
674     public MembershipRequest[] findByUserId_PrevAndNext(
675         long membershipRequestId, long userId, OrderByComparator obc)
676         throws NoSuchMembershipRequestException, SystemException {
677         MembershipRequest membershipRequest = findByPrimaryKey(membershipRequestId);
678 
679         int count = countByUserId(userId);
680 
681         Session session = null;
682 
683         try {
684             session = openSession();
685 
686             StringMaker query = new StringMaker();
687 
688             query.append(
689                 "FROM com.liferay.portal.model.MembershipRequest WHERE ");
690 
691             query.append("userId = ?");
692 
693             query.append(" ");
694 
695             if (obc != null) {
696                 query.append("ORDER BY ");
697                 query.append(obc.getOrderBy());
698             }
699 
700             else {
701                 query.append("ORDER BY ");
702 
703                 query.append("createDate DESC");
704             }
705 
706             Query q = session.createQuery(query.toString());
707 
708             int queryPos = 0;
709 
710             q.setLong(queryPos++, userId);
711 
712             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
713                     membershipRequest);
714 
715             MembershipRequest[] array = new MembershipRequestImpl[3];
716 
717             array[0] = (MembershipRequest)objArray[0];
718             array[1] = (MembershipRequest)objArray[1];
719             array[2] = (MembershipRequest)objArray[2];
720 
721             return array;
722         }
723         catch (Exception e) {
724             throw HibernateUtil.processException(e);
725         }
726         finally {
727             closeSession(session);
728         }
729     }
730 
731     public List findByG_S(long groupId, int statusId) throws SystemException {
732         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
733         String finderClassName = MembershipRequest.class.getName();
734         String finderMethodName = "findByG_S";
735         String[] finderParams = new String[] {
736                 Long.class.getName(), Integer.class.getName()
737             };
738         Object[] finderArgs = new Object[] {
739                 new Long(groupId), new Integer(statusId)
740             };
741 
742         Object result = null;
743 
744         if (finderClassNameCacheEnabled) {
745             result = FinderCache.getResult(finderClassName, finderMethodName,
746                     finderParams, finderArgs, getSessionFactory());
747         }
748 
749         if (result == null) {
750             Session session = null;
751 
752             try {
753                 session = openSession();
754 
755                 StringMaker query = new StringMaker();
756 
757                 query.append(
758                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
759 
760                 query.append("groupId = ?");
761 
762                 query.append(" AND ");
763 
764                 query.append("statusId = ?");
765 
766                 query.append(" ");
767 
768                 query.append("ORDER BY ");
769 
770                 query.append("createDate DESC");
771 
772                 Query q = session.createQuery(query.toString());
773 
774                 int queryPos = 0;
775 
776                 q.setLong(queryPos++, groupId);
777 
778                 q.setInteger(queryPos++, statusId);
779 
780                 List list = q.list();
781 
782                 FinderCache.putResult(finderClassNameCacheEnabled,
783                     finderClassName, finderMethodName, finderParams,
784                     finderArgs, list);
785 
786                 return list;
787             }
788             catch (Exception e) {
789                 throw HibernateUtil.processException(e);
790             }
791             finally {
792                 closeSession(session);
793             }
794         }
795         else {
796             return (List)result;
797         }
798     }
799 
800     public List findByG_S(long groupId, int statusId, int begin, int end)
801         throws SystemException {
802         return findByG_S(groupId, statusId, begin, end, null);
803     }
804 
805     public List findByG_S(long groupId, int statusId, int begin, int end,
806         OrderByComparator obc) throws SystemException {
807         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
808         String finderClassName = MembershipRequest.class.getName();
809         String finderMethodName = "findByG_S";
810         String[] finderParams = new String[] {
811                 Long.class.getName(), Integer.class.getName(),
812                 
813                 "java.lang.Integer", "java.lang.Integer",
814                 "com.liferay.portal.kernel.util.OrderByComparator"
815             };
816         Object[] finderArgs = new Object[] {
817                 new Long(groupId), new Integer(statusId),
818                 
819                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
820             };
821 
822         Object result = null;
823 
824         if (finderClassNameCacheEnabled) {
825             result = FinderCache.getResult(finderClassName, finderMethodName,
826                     finderParams, finderArgs, getSessionFactory());
827         }
828 
829         if (result == null) {
830             Session session = null;
831 
832             try {
833                 session = openSession();
834 
835                 StringMaker query = new StringMaker();
836 
837                 query.append(
838                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
839 
840                 query.append("groupId = ?");
841 
842                 query.append(" AND ");
843 
844                 query.append("statusId = ?");
845 
846                 query.append(" ");
847 
848                 if (obc != null) {
849                     query.append("ORDER BY ");
850                     query.append(obc.getOrderBy());
851                 }
852 
853                 else {
854                     query.append("ORDER BY ");
855 
856                     query.append("createDate DESC");
857                 }
858 
859                 Query q = session.createQuery(query.toString());
860 
861                 int queryPos = 0;
862 
863                 q.setLong(queryPos++, groupId);
864 
865                 q.setInteger(queryPos++, statusId);
866 
867                 List list = QueryUtil.list(q, getDialect(), begin, end);
868 
869                 FinderCache.putResult(finderClassNameCacheEnabled,
870                     finderClassName, finderMethodName, finderParams,
871                     finderArgs, list);
872 
873                 return list;
874             }
875             catch (Exception e) {
876                 throw HibernateUtil.processException(e);
877             }
878             finally {
879                 closeSession(session);
880             }
881         }
882         else {
883             return (List)result;
884         }
885     }
886 
887     public MembershipRequest findByG_S_First(long groupId, int statusId,
888         OrderByComparator obc)
889         throws NoSuchMembershipRequestException, SystemException {
890         List list = findByG_S(groupId, statusId, 0, 1, obc);
891 
892         if (list.size() == 0) {
893             StringMaker msg = new StringMaker();
894 
895             msg.append("No MembershipRequest exists with the key {");
896 
897             msg.append("groupId=" + groupId);
898 
899             msg.append(", ");
900             msg.append("statusId=" + statusId);
901 
902             msg.append(StringPool.CLOSE_CURLY_BRACE);
903 
904             throw new NoSuchMembershipRequestException(msg.toString());
905         }
906         else {
907             return (MembershipRequest)list.get(0);
908         }
909     }
910 
911     public MembershipRequest findByG_S_Last(long groupId, int statusId,
912         OrderByComparator obc)
913         throws NoSuchMembershipRequestException, SystemException {
914         int count = countByG_S(groupId, statusId);
915 
916         List list = findByG_S(groupId, statusId, count - 1, count, obc);
917 
918         if (list.size() == 0) {
919             StringMaker msg = new StringMaker();
920 
921             msg.append("No MembershipRequest exists with the key {");
922 
923             msg.append("groupId=" + groupId);
924 
925             msg.append(", ");
926             msg.append("statusId=" + statusId);
927 
928             msg.append(StringPool.CLOSE_CURLY_BRACE);
929 
930             throw new NoSuchMembershipRequestException(msg.toString());
931         }
932         else {
933             return (MembershipRequest)list.get(0);
934         }
935     }
936 
937     public MembershipRequest[] findByG_S_PrevAndNext(long membershipRequestId,
938         long groupId, int statusId, OrderByComparator obc)
939         throws NoSuchMembershipRequestException, SystemException {
940         MembershipRequest membershipRequest = findByPrimaryKey(membershipRequestId);
941 
942         int count = countByG_S(groupId, statusId);
943 
944         Session session = null;
945 
946         try {
947             session = openSession();
948 
949             StringMaker query = new StringMaker();
950 
951             query.append(
952                 "FROM com.liferay.portal.model.MembershipRequest WHERE ");
953 
954             query.append("groupId = ?");
955 
956             query.append(" AND ");
957 
958             query.append("statusId = ?");
959 
960             query.append(" ");
961 
962             if (obc != null) {
963                 query.append("ORDER BY ");
964                 query.append(obc.getOrderBy());
965             }
966 
967             else {
968                 query.append("ORDER BY ");
969 
970                 query.append("createDate DESC");
971             }
972 
973             Query q = session.createQuery(query.toString());
974 
975             int queryPos = 0;
976 
977             q.setLong(queryPos++, groupId);
978 
979             q.setInteger(queryPos++, statusId);
980 
981             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
982                     membershipRequest);
983 
984             MembershipRequest[] array = new MembershipRequestImpl[3];
985 
986             array[0] = (MembershipRequest)objArray[0];
987             array[1] = (MembershipRequest)objArray[1];
988             array[2] = (MembershipRequest)objArray[2];
989 
990             return array;
991         }
992         catch (Exception e) {
993             throw HibernateUtil.processException(e);
994         }
995         finally {
996             closeSession(session);
997         }
998     }
999 
1000    public List findWithDynamicQuery(DynamicQueryInitializer queryInitializer)
1001        throws SystemException {
1002        Session session = null;
1003
1004        try {
1005            session = openSession();
1006
1007            DynamicQuery query = queryInitializer.initialize(session);
1008
1009            return query.list();
1010        }
1011        catch (Exception e) {
1012            throw HibernateUtil.processException(e);
1013        }
1014        finally {
1015            closeSession(session);
1016        }
1017    }
1018
1019    public List findWithDynamicQuery(DynamicQueryInitializer queryInitializer,
1020        int begin, int end) throws SystemException {
1021        Session session = null;
1022
1023        try {
1024            session = openSession();
1025
1026            DynamicQuery query = queryInitializer.initialize(session);
1027
1028            query.setLimit(begin, end);
1029
1030            return query.list();
1031        }
1032        catch (Exception e) {
1033            throw HibernateUtil.processException(e);
1034        }
1035        finally {
1036            closeSession(session);
1037        }
1038    }
1039
1040    public List findAll() throws SystemException {
1041        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1042    }
1043
1044    public List findAll(int begin, int end) throws SystemException {
1045        return findAll(begin, end, null);
1046    }
1047
1048    public List findAll(int begin, int end, OrderByComparator obc)
1049        throws SystemException {
1050        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1051        String finderClassName = MembershipRequest.class.getName();
1052        String finderMethodName = "findAll";
1053        String[] finderParams = new String[] {
1054                "java.lang.Integer", "java.lang.Integer",
1055                "com.liferay.portal.kernel.util.OrderByComparator"
1056            };
1057        Object[] finderArgs = new Object[] {
1058                String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
1059            };
1060
1061        Object result = null;
1062
1063        if (finderClassNameCacheEnabled) {
1064            result = FinderCache.getResult(finderClassName, finderMethodName,
1065                    finderParams, finderArgs, getSessionFactory());
1066        }
1067
1068        if (result == null) {
1069            Session session = null;
1070
1071            try {
1072                session = openSession();
1073
1074                StringMaker query = new StringMaker();
1075
1076                query.append("FROM com.liferay.portal.model.MembershipRequest ");
1077
1078                if (obc != null) {
1079                    query.append("ORDER BY ");
1080                    query.append(obc.getOrderBy());
1081                }
1082
1083                else {
1084                    query.append("ORDER BY ");
1085
1086                    query.append("createDate DESC");
1087                }
1088
1089                Query q = session.createQuery(query.toString());
1090
1091                List list = QueryUtil.list(q, getDialect(), begin, end);
1092
1093                if (obc == null) {
1094                    Collections.sort(list);
1095                }
1096
1097                FinderCache.putResult(finderClassNameCacheEnabled,
1098                    finderClassName, finderMethodName, finderParams,
1099                    finderArgs, list);
1100
1101                return list;
1102            }
1103            catch (Exception e) {
1104                throw HibernateUtil.processException(e);
1105            }
1106            finally {
1107                closeSession(session);
1108            }
1109        }
1110        else {
1111            return (List)result;
1112        }
1113    }
1114
1115    public void removeByGroupId(long groupId) throws SystemException {
1116        Iterator itr = findByGroupId(groupId).iterator();
1117
1118        while (itr.hasNext()) {
1119            MembershipRequest membershipRequest = (MembershipRequest)itr.next();
1120
1121            remove(membershipRequest);
1122        }
1123    }
1124
1125    public void removeByUserId(long userId) throws SystemException {
1126        Iterator itr = findByUserId(userId).iterator();
1127
1128        while (itr.hasNext()) {
1129            MembershipRequest membershipRequest = (MembershipRequest)itr.next();
1130
1131            remove(membershipRequest);
1132        }
1133    }
1134
1135    public void removeByG_S(long groupId, int statusId)
1136        throws SystemException {
1137        Iterator itr = findByG_S(groupId, statusId).iterator();
1138
1139        while (itr.hasNext()) {
1140            MembershipRequest membershipRequest = (MembershipRequest)itr.next();
1141
1142            remove(membershipRequest);
1143        }
1144    }
1145
1146    public void removeAll() throws SystemException {
1147        Iterator itr = findAll().iterator();
1148
1149        while (itr.hasNext()) {
1150            remove((MembershipRequest)itr.next());
1151        }
1152    }
1153
1154    public int countByGroupId(long groupId) throws SystemException {
1155        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1156        String finderClassName = MembershipRequest.class.getName();
1157        String finderMethodName = "countByGroupId";
1158        String[] finderParams = new String[] { Long.class.getName() };
1159        Object[] finderArgs = new Object[] { new Long(groupId) };
1160
1161        Object result = null;
1162
1163        if (finderClassNameCacheEnabled) {
1164            result = FinderCache.getResult(finderClassName, finderMethodName,
1165                    finderParams, finderArgs, getSessionFactory());
1166        }
1167
1168        if (result == null) {
1169            Session session = null;
1170
1171            try {
1172                session = openSession();
1173
1174                StringMaker query = new StringMaker();
1175
1176                query.append("SELECT COUNT(*) ");
1177                query.append(
1178                    "FROM com.liferay.portal.model.MembershipRequest WHERE ");
1179
1180                query.append("groupId = ?");
1181
1182                query.append(" ");
1183
1184                Query q = session.createQuery(query.toString());
1185
1186                int queryPos = 0;
1187
1188                q.setLong(queryPos++, groupId);
1189
1190                Long count = null;
1191
1192                Iterator itr = q.list().iterator();
1193
1194                if (itr.hasNext()) {
1195                    count = (Long)itr.next();
1196                }
1197
1198                if (count == null) {
1199                    count = new Long(0);
1200                }
1201
1202                FinderCache.putResult(finderClassNameCacheEnabled,
1203                    finderClassName, finderMethodName, finderParams,
1204                    finderArgs, count);
1205
1206                return count.intValue();
1207            }
1208            catch (Exception e) {
1209                throw HibernateUtil.processException(e);
1210            }
1211            finally {
1212                closeSession(session);
1213            }
1214        }
1215        else {
1216            return ((Long)result).intValue();
1217        }
1218    }
1219
1220    public int countByUserId(long userId) throws SystemException {
1221        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1222        String finderClassName = MembershipRequest.class.getName();
1223        String finderMethodName = "countByUserId";
1224        String[] finderParams = new String[] { Long.class.getName() };
1225        Object[] finderArgs = new Object[] { new Long(userId) };
1226
1227        Object result = null;
1228
1229        if (finderClassNameCacheEnabled) {
1230            result = FinderCache.getResult(finderClassName, finderMethodName,
1231                    finderParams, finderArgs, getSessionFactory());
1232        }
1233
1234        if (result == null) {
1235            Session session = null;
1236
1237            try {
1238                session = openSession();
1239
1240                StringMaker query = new StringMaker();
1241
1242                query.append("SELECT COUNT(*) ");
1243                query.append(
1244                    "FROM com.liferay.portal.model.MembershipRequest WHERE ");
1245
1246                query.append("userId = ?");
1247
1248                query.append(" ");
1249
1250                Query q = session.createQuery(query.toString());
1251
1252                int queryPos = 0;
1253
1254                q.setLong(queryPos++, userId);
1255
1256                Long count = null;
1257
1258                Iterator itr = q.list().iterator();
1259
1260                if (itr.hasNext()) {
1261                    count = (Long)itr.next();
1262                }
1263
1264                if (count == null) {
1265                    count = new Long(0);
1266                }
1267
1268                FinderCache.putResult(finderClassNameCacheEnabled,
1269                    finderClassName, finderMethodName, finderParams,
1270                    finderArgs, count);
1271
1272                return count.intValue();
1273            }
1274            catch (Exception e) {
1275                throw HibernateUtil.processException(e);
1276            }
1277            finally {
1278                closeSession(session);
1279            }
1280        }
1281        else {
1282            return ((Long)result).intValue();
1283        }
1284    }
1285
1286    public int countByG_S(long groupId, int statusId) throws SystemException {
1287        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1288        String finderClassName = MembershipRequest.class.getName();
1289        String finderMethodName = "countByG_S";
1290        String[] finderParams = new String[] {
1291                Long.class.getName(), Integer.class.getName()
1292            };
1293        Object[] finderArgs = new Object[] {
1294                new Long(groupId), new Integer(statusId)
1295            };
1296
1297        Object result = null;
1298
1299        if (finderClassNameCacheEnabled) {
1300            result = FinderCache.getResult(finderClassName, finderMethodName,
1301                    finderParams, finderArgs, getSessionFactory());
1302        }
1303
1304        if (result == null) {
1305            Session session = null;
1306
1307            try {
1308                session = openSession();
1309
1310                StringMaker query = new StringMaker();
1311
1312                query.append("SELECT COUNT(*) ");
1313                query.append(
1314                    "FROM com.liferay.portal.model.MembershipRequest WHERE ");
1315
1316                query.append("groupId = ?");
1317
1318                query.append(" AND ");
1319
1320                query.append("statusId = ?");
1321
1322                query.append(" ");
1323
1324                Query q = session.createQuery(query.toString());
1325
1326                int queryPos = 0;
1327
1328                q.setLong(queryPos++, groupId);
1329
1330                q.setInteger(queryPos++, statusId);
1331
1332                Long count = null;
1333
1334                Iterator itr = q.list().iterator();
1335
1336                if (itr.hasNext()) {
1337                    count = (Long)itr.next();
1338                }
1339
1340                if (count == null) {
1341                    count = new Long(0);
1342                }
1343
1344                FinderCache.putResult(finderClassNameCacheEnabled,
1345                    finderClassName, finderMethodName, finderParams,
1346                    finderArgs, count);
1347
1348                return count.intValue();
1349            }
1350            catch (Exception e) {
1351                throw HibernateUtil.processException(e);
1352            }
1353            finally {
1354                closeSession(session);
1355            }
1356        }
1357        else {
1358            return ((Long)result).intValue();
1359        }
1360    }
1361
1362    public int countAll() throws SystemException {
1363        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1364        String finderClassName = MembershipRequest.class.getName();
1365        String finderMethodName = "countAll";
1366        String[] finderParams = new String[] {  };
1367        Object[] finderArgs = new Object[] {  };
1368
1369        Object result = null;
1370
1371        if (finderClassNameCacheEnabled) {
1372            result = FinderCache.getResult(finderClassName, finderMethodName,
1373                    finderParams, finderArgs, getSessionFactory());
1374        }
1375
1376        if (result == null) {
1377            Session session = null;
1378
1379            try {
1380                session = openSession();
1381
1382                Query q = session.createQuery(
1383                        "SELECT COUNT(*) FROM com.liferay.portal.model.MembershipRequest");
1384
1385                Long count = null;
1386
1387                Iterator itr = q.list().iterator();
1388
1389                if (itr.hasNext()) {
1390                    count = (Long)itr.next();
1391                }
1392
1393                if (count == null) {
1394                    count = new Long(0);
1395                }
1396
1397                FinderCache.putResult(finderClassNameCacheEnabled,
1398                    finderClassName, finderMethodName, finderParams,
1399                    finderArgs, count);
1400
1401                return count.intValue();
1402            }
1403            catch (Exception e) {
1404                throw HibernateUtil.processException(e);
1405            }
1406            finally {
1407                closeSession(session);
1408            }
1409        }
1410        else {
1411            return ((Long)result).intValue();
1412        }
1413    }
1414
1415    protected void initDao() {
1416    }
1417
1418    private static ModelListener _getListener() {
1419        if (Validator.isNotNull(_LISTENER)) {
1420            try {
1421                return (ModelListener)Class.forName(_LISTENER).newInstance();
1422            }
1423            catch (Exception e) {
1424                _log.error(e);
1425            }
1426        }
1427
1428        return null;
1429    }
1430
1431    private static final String _LISTENER = GetterUtil.getString(PropsUtil.get(
1432                "value.object.listener.com.liferay.portal.model.MembershipRequest"));
1433    private static Log _log = LogFactory.getLog(MembershipRequestPersistenceImpl.class);
1434}