1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.shopping.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.kernel.annotation.BeanReference;
19  import com.liferay.portal.kernel.cache.CacheRegistry;
20  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
21  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
22  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
23  import com.liferay.portal.kernel.dao.orm.FinderPath;
24  import com.liferay.portal.kernel.dao.orm.Query;
25  import com.liferay.portal.kernel.dao.orm.QueryPos;
26  import com.liferay.portal.kernel.dao.orm.QueryUtil;
27  import com.liferay.portal.kernel.dao.orm.Session;
28  import com.liferay.portal.kernel.exception.SystemException;
29  import com.liferay.portal.kernel.log.Log;
30  import com.liferay.portal.kernel.log.LogFactoryUtil;
31  import com.liferay.portal.kernel.util.GetterUtil;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.kernel.util.Validator;
37  import com.liferay.portal.model.ModelListener;
38  import com.liferay.portal.service.persistence.BatchSessionUtil;
39  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
40  
41  import com.liferay.portlet.shopping.NoSuchOrderException;
42  import com.liferay.portlet.shopping.model.ShoppingOrder;
43  import com.liferay.portlet.shopping.model.impl.ShoppingOrderImpl;
44  import com.liferay.portlet.shopping.model.impl.ShoppingOrderModelImpl;
45  
46  import java.io.Serializable;
47  
48  import java.util.ArrayList;
49  import java.util.Collections;
50  import java.util.List;
51  
52  /**
53   * <a href="ShoppingOrderPersistenceImpl.java.html"><b><i>View Source</i></b></a>
54   *
55   * <p>
56   * ServiceBuilder generated this class. Modifications in this class will be
57   * overwritten the next time is generated.
58   * </p>
59   *
60   * @author    Brian Wing Shun Chan
61   * @see       ShoppingOrderPersistence
62   * @see       ShoppingOrderUtil
63   * @generated
64   */
65  public class ShoppingOrderPersistenceImpl extends BasePersistenceImpl<ShoppingOrder>
66      implements ShoppingOrderPersistence {
67      public static final String FINDER_CLASS_NAME_ENTITY = ShoppingOrderImpl.class.getName();
68      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
69          ".List";
70      public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
71              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
72              FINDER_CLASS_NAME_LIST, "findByGroupId",
73              new String[] { Long.class.getName() });
74      public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
75              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
76              FINDER_CLASS_NAME_LIST, "findByGroupId",
77              new String[] {
78                  Long.class.getName(),
79                  
80              "java.lang.Integer", "java.lang.Integer",
81                  "com.liferay.portal.kernel.util.OrderByComparator"
82              });
83      public static final FinderPath FINDER_PATH_COUNT_BY_GROUPID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
84              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
85              FINDER_CLASS_NAME_LIST, "countByGroupId",
86              new String[] { Long.class.getName() });
87      public static final FinderPath FINDER_PATH_FETCH_BY_NUMBER = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
88              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
89              FINDER_CLASS_NAME_ENTITY, "fetchByNumber",
90              new String[] { String.class.getName() });
91      public static final FinderPath FINDER_PATH_COUNT_BY_NUMBER = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
92              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
93              FINDER_CLASS_NAME_LIST, "countByNumber",
94              new String[] { String.class.getName() });
95      public static final FinderPath FINDER_PATH_FETCH_BY_PPTXNID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
96              ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
97              FINDER_CLASS_NAME_ENTITY, "fetchByPPTxnId",
98              new String[] { String.class.getName() });
99      public static final FinderPath FINDER_PATH_COUNT_BY_PPTXNID = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
100             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
101             FINDER_CLASS_NAME_LIST, "countByPPTxnId",
102             new String[] { String.class.getName() });
103     public static final FinderPath FINDER_PATH_FIND_BY_G_U_PPPS = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
104             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
105             FINDER_CLASS_NAME_LIST, "findByG_U_PPPS",
106             new String[] {
107                 Long.class.getName(), Long.class.getName(),
108                 String.class.getName()
109             });
110     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_U_PPPS = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
111             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
112             FINDER_CLASS_NAME_LIST, "findByG_U_PPPS",
113             new String[] {
114                 Long.class.getName(), Long.class.getName(),
115                 String.class.getName(),
116                 
117             "java.lang.Integer", "java.lang.Integer",
118                 "com.liferay.portal.kernel.util.OrderByComparator"
119             });
120     public static final FinderPath FINDER_PATH_COUNT_BY_G_U_PPPS = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
121             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
122             FINDER_CLASS_NAME_LIST, "countByG_U_PPPS",
123             new String[] {
124                 Long.class.getName(), Long.class.getName(),
125                 String.class.getName()
126             });
127     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
128             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
129             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
130     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
131             ShoppingOrderModelImpl.FINDER_CACHE_ENABLED,
132             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
133 
134     public void cacheResult(ShoppingOrder shoppingOrder) {
135         EntityCacheUtil.putResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
136             ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey(),
137             shoppingOrder);
138 
139         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
140             new Object[] { shoppingOrder.getNumber() }, shoppingOrder);
141 
142         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
143             new Object[] { shoppingOrder.getPpTxnId() }, shoppingOrder);
144     }
145 
146     public void cacheResult(List<ShoppingOrder> shoppingOrders) {
147         for (ShoppingOrder shoppingOrder : shoppingOrders) {
148             if (EntityCacheUtil.getResult(
149                         ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
150                         ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey(),
151                         this) == null) {
152                 cacheResult(shoppingOrder);
153             }
154         }
155     }
156 
157     public void clearCache() {
158         CacheRegistry.clear(ShoppingOrderImpl.class.getName());
159         EntityCacheUtil.clearCache(ShoppingOrderImpl.class.getName());
160         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
161         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
162     }
163 
164     public ShoppingOrder create(long orderId) {
165         ShoppingOrder shoppingOrder = new ShoppingOrderImpl();
166 
167         shoppingOrder.setNew(true);
168         shoppingOrder.setPrimaryKey(orderId);
169 
170         return shoppingOrder;
171     }
172 
173     public ShoppingOrder remove(Serializable primaryKey)
174         throws NoSuchModelException, SystemException {
175         return remove(((Long)primaryKey).longValue());
176     }
177 
178     public ShoppingOrder remove(long orderId)
179         throws NoSuchOrderException, SystemException {
180         Session session = null;
181 
182         try {
183             session = openSession();
184 
185             ShoppingOrder shoppingOrder = (ShoppingOrder)session.get(ShoppingOrderImpl.class,
186                     new Long(orderId));
187 
188             if (shoppingOrder == null) {
189                 if (_log.isWarnEnabled()) {
190                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + orderId);
191                 }
192 
193                 throw new NoSuchOrderException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
194                     orderId);
195             }
196 
197             return remove(shoppingOrder);
198         }
199         catch (NoSuchOrderException nsee) {
200             throw nsee;
201         }
202         catch (Exception e) {
203             throw processException(e);
204         }
205         finally {
206             closeSession(session);
207         }
208     }
209 
210     public ShoppingOrder remove(ShoppingOrder shoppingOrder)
211         throws SystemException {
212         for (ModelListener<ShoppingOrder> listener : listeners) {
213             listener.onBeforeRemove(shoppingOrder);
214         }
215 
216         shoppingOrder = removeImpl(shoppingOrder);
217 
218         for (ModelListener<ShoppingOrder> listener : listeners) {
219             listener.onAfterRemove(shoppingOrder);
220         }
221 
222         return shoppingOrder;
223     }
224 
225     protected ShoppingOrder removeImpl(ShoppingOrder shoppingOrder)
226         throws SystemException {
227         shoppingOrder = toUnwrappedModel(shoppingOrder);
228 
229         Session session = null;
230 
231         try {
232             session = openSession();
233 
234             if (shoppingOrder.isCachedModel() || BatchSessionUtil.isEnabled()) {
235                 Object staleObject = session.get(ShoppingOrderImpl.class,
236                         shoppingOrder.getPrimaryKeyObj());
237 
238                 if (staleObject != null) {
239                     session.evict(staleObject);
240                 }
241             }
242 
243             session.delete(shoppingOrder);
244 
245             session.flush();
246         }
247         catch (Exception e) {
248             throw processException(e);
249         }
250         finally {
251             closeSession(session);
252         }
253 
254         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
255 
256         ShoppingOrderModelImpl shoppingOrderModelImpl = (ShoppingOrderModelImpl)shoppingOrder;
257 
258         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_NUMBER,
259             new Object[] { shoppingOrderModelImpl.getOriginalNumber() });
260 
261         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_PPTXNID,
262             new Object[] { shoppingOrderModelImpl.getOriginalPpTxnId() });
263 
264         EntityCacheUtil.removeResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
265             ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey());
266 
267         return shoppingOrder;
268     }
269 
270     public ShoppingOrder updateImpl(
271         com.liferay.portlet.shopping.model.ShoppingOrder shoppingOrder,
272         boolean merge) throws SystemException {
273         shoppingOrder = toUnwrappedModel(shoppingOrder);
274 
275         boolean isNew = shoppingOrder.isNew();
276 
277         ShoppingOrderModelImpl shoppingOrderModelImpl = (ShoppingOrderModelImpl)shoppingOrder;
278 
279         Session session = null;
280 
281         try {
282             session = openSession();
283 
284             BatchSessionUtil.update(session, shoppingOrder, merge);
285 
286             shoppingOrder.setNew(false);
287         }
288         catch (Exception e) {
289             throw processException(e);
290         }
291         finally {
292             closeSession(session);
293         }
294 
295         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
296 
297         EntityCacheUtil.putResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
298             ShoppingOrderImpl.class, shoppingOrder.getPrimaryKey(),
299             shoppingOrder);
300 
301         if (!isNew &&
302                 (!Validator.equals(shoppingOrder.getNumber(),
303                     shoppingOrderModelImpl.getOriginalNumber()))) {
304             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_NUMBER,
305                 new Object[] { shoppingOrderModelImpl.getOriginalNumber() });
306         }
307 
308         if (isNew ||
309                 (!Validator.equals(shoppingOrder.getNumber(),
310                     shoppingOrderModelImpl.getOriginalNumber()))) {
311             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
312                 new Object[] { shoppingOrder.getNumber() }, shoppingOrder);
313         }
314 
315         if (!isNew &&
316                 (!Validator.equals(shoppingOrder.getPpTxnId(),
317                     shoppingOrderModelImpl.getOriginalPpTxnId()))) {
318             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_PPTXNID,
319                 new Object[] { shoppingOrderModelImpl.getOriginalPpTxnId() });
320         }
321 
322         if (isNew ||
323                 (!Validator.equals(shoppingOrder.getPpTxnId(),
324                     shoppingOrderModelImpl.getOriginalPpTxnId()))) {
325             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
326                 new Object[] { shoppingOrder.getPpTxnId() }, shoppingOrder);
327         }
328 
329         return shoppingOrder;
330     }
331 
332     protected ShoppingOrder toUnwrappedModel(ShoppingOrder shoppingOrder) {
333         if (shoppingOrder instanceof ShoppingOrderImpl) {
334             return shoppingOrder;
335         }
336 
337         ShoppingOrderImpl shoppingOrderImpl = new ShoppingOrderImpl();
338 
339         shoppingOrderImpl.setNew(shoppingOrder.isNew());
340         shoppingOrderImpl.setPrimaryKey(shoppingOrder.getPrimaryKey());
341 
342         shoppingOrderImpl.setOrderId(shoppingOrder.getOrderId());
343         shoppingOrderImpl.setGroupId(shoppingOrder.getGroupId());
344         shoppingOrderImpl.setCompanyId(shoppingOrder.getCompanyId());
345         shoppingOrderImpl.setUserId(shoppingOrder.getUserId());
346         shoppingOrderImpl.setUserName(shoppingOrder.getUserName());
347         shoppingOrderImpl.setCreateDate(shoppingOrder.getCreateDate());
348         shoppingOrderImpl.setModifiedDate(shoppingOrder.getModifiedDate());
349         shoppingOrderImpl.setNumber(shoppingOrder.getNumber());
350         shoppingOrderImpl.setTax(shoppingOrder.getTax());
351         shoppingOrderImpl.setShipping(shoppingOrder.getShipping());
352         shoppingOrderImpl.setAltShipping(shoppingOrder.getAltShipping());
353         shoppingOrderImpl.setRequiresShipping(shoppingOrder.isRequiresShipping());
354         shoppingOrderImpl.setInsure(shoppingOrder.isInsure());
355         shoppingOrderImpl.setInsurance(shoppingOrder.getInsurance());
356         shoppingOrderImpl.setCouponCodes(shoppingOrder.getCouponCodes());
357         shoppingOrderImpl.setCouponDiscount(shoppingOrder.getCouponDiscount());
358         shoppingOrderImpl.setBillingFirstName(shoppingOrder.getBillingFirstName());
359         shoppingOrderImpl.setBillingLastName(shoppingOrder.getBillingLastName());
360         shoppingOrderImpl.setBillingEmailAddress(shoppingOrder.getBillingEmailAddress());
361         shoppingOrderImpl.setBillingCompany(shoppingOrder.getBillingCompany());
362         shoppingOrderImpl.setBillingStreet(shoppingOrder.getBillingStreet());
363         shoppingOrderImpl.setBillingCity(shoppingOrder.getBillingCity());
364         shoppingOrderImpl.setBillingState(shoppingOrder.getBillingState());
365         shoppingOrderImpl.setBillingZip(shoppingOrder.getBillingZip());
366         shoppingOrderImpl.setBillingCountry(shoppingOrder.getBillingCountry());
367         shoppingOrderImpl.setBillingPhone(shoppingOrder.getBillingPhone());
368         shoppingOrderImpl.setShipToBilling(shoppingOrder.isShipToBilling());
369         shoppingOrderImpl.setShippingFirstName(shoppingOrder.getShippingFirstName());
370         shoppingOrderImpl.setShippingLastName(shoppingOrder.getShippingLastName());
371         shoppingOrderImpl.setShippingEmailAddress(shoppingOrder.getShippingEmailAddress());
372         shoppingOrderImpl.setShippingCompany(shoppingOrder.getShippingCompany());
373         shoppingOrderImpl.setShippingStreet(shoppingOrder.getShippingStreet());
374         shoppingOrderImpl.setShippingCity(shoppingOrder.getShippingCity());
375         shoppingOrderImpl.setShippingState(shoppingOrder.getShippingState());
376         shoppingOrderImpl.setShippingZip(shoppingOrder.getShippingZip());
377         shoppingOrderImpl.setShippingCountry(shoppingOrder.getShippingCountry());
378         shoppingOrderImpl.setShippingPhone(shoppingOrder.getShippingPhone());
379         shoppingOrderImpl.setCcName(shoppingOrder.getCcName());
380         shoppingOrderImpl.setCcType(shoppingOrder.getCcType());
381         shoppingOrderImpl.setCcNumber(shoppingOrder.getCcNumber());
382         shoppingOrderImpl.setCcExpMonth(shoppingOrder.getCcExpMonth());
383         shoppingOrderImpl.setCcExpYear(shoppingOrder.getCcExpYear());
384         shoppingOrderImpl.setCcVerNumber(shoppingOrder.getCcVerNumber());
385         shoppingOrderImpl.setComments(shoppingOrder.getComments());
386         shoppingOrderImpl.setPpTxnId(shoppingOrder.getPpTxnId());
387         shoppingOrderImpl.setPpPaymentStatus(shoppingOrder.getPpPaymentStatus());
388         shoppingOrderImpl.setPpPaymentGross(shoppingOrder.getPpPaymentGross());
389         shoppingOrderImpl.setPpReceiverEmail(shoppingOrder.getPpReceiverEmail());
390         shoppingOrderImpl.setPpPayerEmail(shoppingOrder.getPpPayerEmail());
391         shoppingOrderImpl.setSendOrderEmail(shoppingOrder.isSendOrderEmail());
392         shoppingOrderImpl.setSendShippingEmail(shoppingOrder.isSendShippingEmail());
393 
394         return shoppingOrderImpl;
395     }
396 
397     public ShoppingOrder findByPrimaryKey(Serializable primaryKey)
398         throws NoSuchModelException, SystemException {
399         return findByPrimaryKey(((Long)primaryKey).longValue());
400     }
401 
402     public ShoppingOrder findByPrimaryKey(long orderId)
403         throws NoSuchOrderException, SystemException {
404         ShoppingOrder shoppingOrder = fetchByPrimaryKey(orderId);
405 
406         if (shoppingOrder == null) {
407             if (_log.isWarnEnabled()) {
408                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + orderId);
409             }
410 
411             throw new NoSuchOrderException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
412                 orderId);
413         }
414 
415         return shoppingOrder;
416     }
417 
418     public ShoppingOrder fetchByPrimaryKey(Serializable primaryKey)
419         throws SystemException {
420         return fetchByPrimaryKey(((Long)primaryKey).longValue());
421     }
422 
423     public ShoppingOrder fetchByPrimaryKey(long orderId)
424         throws SystemException {
425         ShoppingOrder shoppingOrder = (ShoppingOrder)EntityCacheUtil.getResult(ShoppingOrderModelImpl.ENTITY_CACHE_ENABLED,
426                 ShoppingOrderImpl.class, orderId, this);
427 
428         if (shoppingOrder == null) {
429             Session session = null;
430 
431             try {
432                 session = openSession();
433 
434                 shoppingOrder = (ShoppingOrder)session.get(ShoppingOrderImpl.class,
435                         new Long(orderId));
436             }
437             catch (Exception e) {
438                 throw processException(e);
439             }
440             finally {
441                 if (shoppingOrder != null) {
442                     cacheResult(shoppingOrder);
443                 }
444 
445                 closeSession(session);
446             }
447         }
448 
449         return shoppingOrder;
450     }
451 
452     public List<ShoppingOrder> findByGroupId(long groupId)
453         throws SystemException {
454         Object[] finderArgs = new Object[] { new Long(groupId) };
455 
456         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
457                 finderArgs, this);
458 
459         if (list == null) {
460             Session session = null;
461 
462             try {
463                 session = openSession();
464 
465                 StringBundler query = new StringBundler(3);
466 
467                 query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
468 
469                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
470 
471                 query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
472 
473                 String sql = query.toString();
474 
475                 Query q = session.createQuery(sql);
476 
477                 QueryPos qPos = QueryPos.getInstance(q);
478 
479                 qPos.add(groupId);
480 
481                 list = q.list();
482             }
483             catch (Exception e) {
484                 throw processException(e);
485             }
486             finally {
487                 if (list == null) {
488                     list = new ArrayList<ShoppingOrder>();
489                 }
490 
491                 cacheResult(list);
492 
493                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
494                     finderArgs, list);
495 
496                 closeSession(session);
497             }
498         }
499 
500         return list;
501     }
502 
503     public List<ShoppingOrder> findByGroupId(long groupId, int start, int end)
504         throws SystemException {
505         return findByGroupId(groupId, start, end, null);
506     }
507 
508     public List<ShoppingOrder> findByGroupId(long groupId, int start, int end,
509         OrderByComparator obc) throws SystemException {
510         Object[] finderArgs = new Object[] {
511                 new Long(groupId),
512                 
513                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
514             };
515 
516         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
517                 finderArgs, this);
518 
519         if (list == null) {
520             Session session = null;
521 
522             try {
523                 session = openSession();
524 
525                 StringBundler query = null;
526 
527                 if (obc != null) {
528                     query = new StringBundler(3 +
529                             (obc.getOrderByFields().length * 3));
530                 }
531                 else {
532                     query = new StringBundler(3);
533                 }
534 
535                 query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
536 
537                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
538 
539                 if (obc != null) {
540                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
541                 }
542 
543                 else {
544                     query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
545                 }
546 
547                 String sql = query.toString();
548 
549                 Query q = session.createQuery(sql);
550 
551                 QueryPos qPos = QueryPos.getInstance(q);
552 
553                 qPos.add(groupId);
554 
555                 list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
556                         start, end);
557             }
558             catch (Exception e) {
559                 throw processException(e);
560             }
561             finally {
562                 if (list == null) {
563                     list = new ArrayList<ShoppingOrder>();
564                 }
565 
566                 cacheResult(list);
567 
568                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
569                     finderArgs, list);
570 
571                 closeSession(session);
572             }
573         }
574 
575         return list;
576     }
577 
578     public ShoppingOrder findByGroupId_First(long groupId, OrderByComparator obc)
579         throws NoSuchOrderException, SystemException {
580         List<ShoppingOrder> list = findByGroupId(groupId, 0, 1, obc);
581 
582         if (list.isEmpty()) {
583             StringBundler msg = new StringBundler(4);
584 
585             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
586 
587             msg.append("groupId=");
588             msg.append(groupId);
589 
590             msg.append(StringPool.CLOSE_CURLY_BRACE);
591 
592             throw new NoSuchOrderException(msg.toString());
593         }
594         else {
595             return list.get(0);
596         }
597     }
598 
599     public ShoppingOrder findByGroupId_Last(long groupId, OrderByComparator obc)
600         throws NoSuchOrderException, SystemException {
601         int count = countByGroupId(groupId);
602 
603         List<ShoppingOrder> list = findByGroupId(groupId, count - 1, count, obc);
604 
605         if (list.isEmpty()) {
606             StringBundler msg = new StringBundler(4);
607 
608             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
609 
610             msg.append("groupId=");
611             msg.append(groupId);
612 
613             msg.append(StringPool.CLOSE_CURLY_BRACE);
614 
615             throw new NoSuchOrderException(msg.toString());
616         }
617         else {
618             return list.get(0);
619         }
620     }
621 
622     public ShoppingOrder[] findByGroupId_PrevAndNext(long orderId,
623         long groupId, OrderByComparator obc)
624         throws NoSuchOrderException, SystemException {
625         ShoppingOrder shoppingOrder = findByPrimaryKey(orderId);
626 
627         int count = countByGroupId(groupId);
628 
629         Session session = null;
630 
631         try {
632             session = openSession();
633 
634             StringBundler query = null;
635 
636             if (obc != null) {
637                 query = new StringBundler(3 +
638                         (obc.getOrderByFields().length * 3));
639             }
640             else {
641                 query = new StringBundler(3);
642             }
643 
644             query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
645 
646             query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
647 
648             if (obc != null) {
649                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
650             }
651 
652             else {
653                 query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
654             }
655 
656             String sql = query.toString();
657 
658             Query q = session.createQuery(sql);
659 
660             QueryPos qPos = QueryPos.getInstance(q);
661 
662             qPos.add(groupId);
663 
664             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
665                     shoppingOrder);
666 
667             ShoppingOrder[] array = new ShoppingOrderImpl[3];
668 
669             array[0] = (ShoppingOrder)objArray[0];
670             array[1] = (ShoppingOrder)objArray[1];
671             array[2] = (ShoppingOrder)objArray[2];
672 
673             return array;
674         }
675         catch (Exception e) {
676             throw processException(e);
677         }
678         finally {
679             closeSession(session);
680         }
681     }
682 
683     public ShoppingOrder findByNumber(String number)
684         throws NoSuchOrderException, SystemException {
685         ShoppingOrder shoppingOrder = fetchByNumber(number);
686 
687         if (shoppingOrder == null) {
688             StringBundler msg = new StringBundler(4);
689 
690             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
691 
692             msg.append("number=");
693             msg.append(number);
694 
695             msg.append(StringPool.CLOSE_CURLY_BRACE);
696 
697             if (_log.isWarnEnabled()) {
698                 _log.warn(msg.toString());
699             }
700 
701             throw new NoSuchOrderException(msg.toString());
702         }
703 
704         return shoppingOrder;
705     }
706 
707     public ShoppingOrder fetchByNumber(String number) throws SystemException {
708         return fetchByNumber(number, true);
709     }
710 
711     public ShoppingOrder fetchByNumber(String number, boolean retrieveFromCache)
712         throws SystemException {
713         Object[] finderArgs = new Object[] { number };
714 
715         Object result = null;
716 
717         if (retrieveFromCache) {
718             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_NUMBER,
719                     finderArgs, this);
720         }
721 
722         if (result == null) {
723             Session session = null;
724 
725             try {
726                 session = openSession();
727 
728                 StringBundler query = new StringBundler(3);
729 
730                 query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
731 
732                 if (number == null) {
733                     query.append(_FINDER_COLUMN_NUMBER_NUMBER_1);
734                 }
735                 else {
736                     if (number.equals(StringPool.BLANK)) {
737                         query.append(_FINDER_COLUMN_NUMBER_NUMBER_3);
738                     }
739                     else {
740                         query.append(_FINDER_COLUMN_NUMBER_NUMBER_2);
741                     }
742                 }
743 
744                 query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
745 
746                 String sql = query.toString();
747 
748                 Query q = session.createQuery(sql);
749 
750                 QueryPos qPos = QueryPos.getInstance(q);
751 
752                 if (number != null) {
753                     qPos.add(number);
754                 }
755 
756                 List<ShoppingOrder> list = q.list();
757 
758                 result = list;
759 
760                 ShoppingOrder shoppingOrder = null;
761 
762                 if (list.isEmpty()) {
763                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
764                         finderArgs, list);
765                 }
766                 else {
767                     shoppingOrder = list.get(0);
768 
769                     cacheResult(shoppingOrder);
770 
771                     if ((shoppingOrder.getNumber() == null) ||
772                             !shoppingOrder.getNumber().equals(number)) {
773                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
774                             finderArgs, shoppingOrder);
775                     }
776                 }
777 
778                 return shoppingOrder;
779             }
780             catch (Exception e) {
781                 throw processException(e);
782             }
783             finally {
784                 if (result == null) {
785                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NUMBER,
786                         finderArgs, new ArrayList<ShoppingOrder>());
787                 }
788 
789                 closeSession(session);
790             }
791         }
792         else {
793             if (result instanceof List<?>) {
794                 return null;
795             }
796             else {
797                 return (ShoppingOrder)result;
798             }
799         }
800     }
801 
802     public ShoppingOrder findByPPTxnId(String ppTxnId)
803         throws NoSuchOrderException, SystemException {
804         ShoppingOrder shoppingOrder = fetchByPPTxnId(ppTxnId);
805 
806         if (shoppingOrder == null) {
807             StringBundler msg = new StringBundler(4);
808 
809             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
810 
811             msg.append("ppTxnId=");
812             msg.append(ppTxnId);
813 
814             msg.append(StringPool.CLOSE_CURLY_BRACE);
815 
816             if (_log.isWarnEnabled()) {
817                 _log.warn(msg.toString());
818             }
819 
820             throw new NoSuchOrderException(msg.toString());
821         }
822 
823         return shoppingOrder;
824     }
825 
826     public ShoppingOrder fetchByPPTxnId(String ppTxnId)
827         throws SystemException {
828         return fetchByPPTxnId(ppTxnId, true);
829     }
830 
831     public ShoppingOrder fetchByPPTxnId(String ppTxnId,
832         boolean retrieveFromCache) throws SystemException {
833         Object[] finderArgs = new Object[] { ppTxnId };
834 
835         Object result = null;
836 
837         if (retrieveFromCache) {
838             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_PPTXNID,
839                     finderArgs, this);
840         }
841 
842         if (result == null) {
843             Session session = null;
844 
845             try {
846                 session = openSession();
847 
848                 StringBundler query = new StringBundler(3);
849 
850                 query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
851 
852                 if (ppTxnId == null) {
853                     query.append(_FINDER_COLUMN_PPTXNID_PPTXNID_1);
854                 }
855                 else {
856                     if (ppTxnId.equals(StringPool.BLANK)) {
857                         query.append(_FINDER_COLUMN_PPTXNID_PPTXNID_3);
858                     }
859                     else {
860                         query.append(_FINDER_COLUMN_PPTXNID_PPTXNID_2);
861                     }
862                 }
863 
864                 query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
865 
866                 String sql = query.toString();
867 
868                 Query q = session.createQuery(sql);
869 
870                 QueryPos qPos = QueryPos.getInstance(q);
871 
872                 if (ppTxnId != null) {
873                     qPos.add(ppTxnId);
874                 }
875 
876                 List<ShoppingOrder> list = q.list();
877 
878                 result = list;
879 
880                 ShoppingOrder shoppingOrder = null;
881 
882                 if (list.isEmpty()) {
883                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
884                         finderArgs, list);
885                 }
886                 else {
887                     shoppingOrder = list.get(0);
888 
889                     cacheResult(shoppingOrder);
890 
891                     if ((shoppingOrder.getPpTxnId() == null) ||
892                             !shoppingOrder.getPpTxnId().equals(ppTxnId)) {
893                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
894                             finderArgs, shoppingOrder);
895                     }
896                 }
897 
898                 return shoppingOrder;
899             }
900             catch (Exception e) {
901                 throw processException(e);
902             }
903             finally {
904                 if (result == null) {
905                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_PPTXNID,
906                         finderArgs, new ArrayList<ShoppingOrder>());
907                 }
908 
909                 closeSession(session);
910             }
911         }
912         else {
913             if (result instanceof List<?>) {
914                 return null;
915             }
916             else {
917                 return (ShoppingOrder)result;
918             }
919         }
920     }
921 
922     public List<ShoppingOrder> findByG_U_PPPS(long groupId, long userId,
923         String ppPaymentStatus) throws SystemException {
924         Object[] finderArgs = new Object[] {
925                 new Long(groupId), new Long(userId),
926                 
927                 ppPaymentStatus
928             };
929 
930         List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_U_PPPS,
931                 finderArgs, this);
932 
933         if (list == null) {
934             Session session = null;
935 
936             try {
937                 session = openSession();
938 
939                 StringBundler query = new StringBundler(5);
940 
941                 query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
942 
943                 query.append(_FINDER_COLUMN_G_U_PPPS_GROUPID_2);
944 
945                 query.append(_FINDER_COLUMN_G_U_PPPS_USERID_2);
946 
947                 if (ppPaymentStatus == null) {
948                     query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_1);
949                 }
950                 else {
951                     if (ppPaymentStatus.equals(StringPool.BLANK)) {
952                         query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_3);
953                     }
954                     else {
955                         query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_2);
956                     }
957                 }
958 
959                 query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
960 
961                 String sql = query.toString();
962 
963                 Query q = session.createQuery(sql);
964 
965                 QueryPos qPos = QueryPos.getInstance(q);
966 
967                 qPos.add(groupId);
968 
969                 qPos.add(userId);
970 
971                 if (ppPaymentStatus != null) {
972                     qPos.add(ppPaymentStatus);
973                 }
974 
975                 list = q.list();
976             }
977             catch (Exception e) {
978                 throw processException(e);
979             }
980             finally {
981                 if (list == null) {
982                     list = new ArrayList<ShoppingOrder>();
983                 }
984 
985                 cacheResult(list);
986 
987                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_U_PPPS,
988                     finderArgs, list);
989 
990                 closeSession(session);
991             }
992         }
993 
994         return list;
995     }
996 
997     public List<ShoppingOrder> findByG_U_PPPS(long groupId, long userId,
998         String ppPaymentStatus, int start, int end) throws SystemException {
999         return findByG_U_PPPS(groupId, userId, ppPaymentStatus, start, end, null);
1000    }
1001
1002    public List<ShoppingOrder> findByG_U_PPPS(long groupId, long userId,
1003        String ppPaymentStatus, int start, int end, OrderByComparator obc)
1004        throws SystemException {
1005        Object[] finderArgs = new Object[] {
1006                new Long(groupId), new Long(userId),
1007                
1008                ppPaymentStatus,
1009                
1010                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1011            };
1012
1013        List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_U_PPPS,
1014                finderArgs, this);
1015
1016        if (list == null) {
1017            Session session = null;
1018
1019            try {
1020                session = openSession();
1021
1022                StringBundler query = null;
1023
1024                if (obc != null) {
1025                    query = new StringBundler(5 +
1026                            (obc.getOrderByFields().length * 3));
1027                }
1028                else {
1029                    query = new StringBundler(5);
1030                }
1031
1032                query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
1033
1034                query.append(_FINDER_COLUMN_G_U_PPPS_GROUPID_2);
1035
1036                query.append(_FINDER_COLUMN_G_U_PPPS_USERID_2);
1037
1038                if (ppPaymentStatus == null) {
1039                    query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_1);
1040                }
1041                else {
1042                    if (ppPaymentStatus.equals(StringPool.BLANK)) {
1043                        query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_3);
1044                    }
1045                    else {
1046                        query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_2);
1047                    }
1048                }
1049
1050                if (obc != null) {
1051                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1052                }
1053
1054                else {
1055                    query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
1056                }
1057
1058                String sql = query.toString();
1059
1060                Query q = session.createQuery(sql);
1061
1062                QueryPos qPos = QueryPos.getInstance(q);
1063
1064                qPos.add(groupId);
1065
1066                qPos.add(userId);
1067
1068                if (ppPaymentStatus != null) {
1069                    qPos.add(ppPaymentStatus);
1070                }
1071
1072                list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
1073                        start, end);
1074            }
1075            catch (Exception e) {
1076                throw processException(e);
1077            }
1078            finally {
1079                if (list == null) {
1080                    list = new ArrayList<ShoppingOrder>();
1081                }
1082
1083                cacheResult(list);
1084
1085                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_U_PPPS,
1086                    finderArgs, list);
1087
1088                closeSession(session);
1089            }
1090        }
1091
1092        return list;
1093    }
1094
1095    public ShoppingOrder findByG_U_PPPS_First(long groupId, long userId,
1096        String ppPaymentStatus, OrderByComparator obc)
1097        throws NoSuchOrderException, SystemException {
1098        List<ShoppingOrder> list = findByG_U_PPPS(groupId, userId,
1099                ppPaymentStatus, 0, 1, obc);
1100
1101        if (list.isEmpty()) {
1102            StringBundler msg = new StringBundler(8);
1103
1104            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1105
1106            msg.append("groupId=");
1107            msg.append(groupId);
1108
1109            msg.append(", userId=");
1110            msg.append(userId);
1111
1112            msg.append(", ppPaymentStatus=");
1113            msg.append(ppPaymentStatus);
1114
1115            msg.append(StringPool.CLOSE_CURLY_BRACE);
1116
1117            throw new NoSuchOrderException(msg.toString());
1118        }
1119        else {
1120            return list.get(0);
1121        }
1122    }
1123
1124    public ShoppingOrder findByG_U_PPPS_Last(long groupId, long userId,
1125        String ppPaymentStatus, OrderByComparator obc)
1126        throws NoSuchOrderException, SystemException {
1127        int count = countByG_U_PPPS(groupId, userId, ppPaymentStatus);
1128
1129        List<ShoppingOrder> list = findByG_U_PPPS(groupId, userId,
1130                ppPaymentStatus, count - 1, count, obc);
1131
1132        if (list.isEmpty()) {
1133            StringBundler msg = new StringBundler(8);
1134
1135            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1136
1137            msg.append("groupId=");
1138            msg.append(groupId);
1139
1140            msg.append(", userId=");
1141            msg.append(userId);
1142
1143            msg.append(", ppPaymentStatus=");
1144            msg.append(ppPaymentStatus);
1145
1146            msg.append(StringPool.CLOSE_CURLY_BRACE);
1147
1148            throw new NoSuchOrderException(msg.toString());
1149        }
1150        else {
1151            return list.get(0);
1152        }
1153    }
1154
1155    public ShoppingOrder[] findByG_U_PPPS_PrevAndNext(long orderId,
1156        long groupId, long userId, String ppPaymentStatus, OrderByComparator obc)
1157        throws NoSuchOrderException, SystemException {
1158        ShoppingOrder shoppingOrder = findByPrimaryKey(orderId);
1159
1160        int count = countByG_U_PPPS(groupId, userId, ppPaymentStatus);
1161
1162        Session session = null;
1163
1164        try {
1165            session = openSession();
1166
1167            StringBundler query = null;
1168
1169            if (obc != null) {
1170                query = new StringBundler(5 +
1171                        (obc.getOrderByFields().length * 3));
1172            }
1173            else {
1174                query = new StringBundler(5);
1175            }
1176
1177            query.append(_SQL_SELECT_SHOPPINGORDER_WHERE);
1178
1179            query.append(_FINDER_COLUMN_G_U_PPPS_GROUPID_2);
1180
1181            query.append(_FINDER_COLUMN_G_U_PPPS_USERID_2);
1182
1183            if (ppPaymentStatus == null) {
1184                query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_1);
1185            }
1186            else {
1187                if (ppPaymentStatus.equals(StringPool.BLANK)) {
1188                    query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_3);
1189                }
1190                else {
1191                    query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_2);
1192                }
1193            }
1194
1195            if (obc != null) {
1196                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1197            }
1198
1199            else {
1200                query.append(ShoppingOrderModelImpl.ORDER_BY_JPQL);
1201            }
1202
1203            String sql = query.toString();
1204
1205            Query q = session.createQuery(sql);
1206
1207            QueryPos qPos = QueryPos.getInstance(q);
1208
1209            qPos.add(groupId);
1210
1211            qPos.add(userId);
1212
1213            if (ppPaymentStatus != null) {
1214                qPos.add(ppPaymentStatus);
1215            }
1216
1217            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1218                    shoppingOrder);
1219
1220            ShoppingOrder[] array = new ShoppingOrderImpl[3];
1221
1222            array[0] = (ShoppingOrder)objArray[0];
1223            array[1] = (ShoppingOrder)objArray[1];
1224            array[2] = (ShoppingOrder)objArray[2];
1225
1226            return array;
1227        }
1228        catch (Exception e) {
1229            throw processException(e);
1230        }
1231        finally {
1232            closeSession(session);
1233        }
1234    }
1235
1236    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1237        throws SystemException {
1238        Session session = null;
1239
1240        try {
1241            session = openSession();
1242
1243            dynamicQuery.compile(session);
1244
1245            return dynamicQuery.list();
1246        }
1247        catch (Exception e) {
1248            throw processException(e);
1249        }
1250        finally {
1251            closeSession(session);
1252        }
1253    }
1254
1255    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1256        int start, int end) throws SystemException {
1257        Session session = null;
1258
1259        try {
1260            session = openSession();
1261
1262            dynamicQuery.setLimit(start, end);
1263
1264            dynamicQuery.compile(session);
1265
1266            return dynamicQuery.list();
1267        }
1268        catch (Exception e) {
1269            throw processException(e);
1270        }
1271        finally {
1272            closeSession(session);
1273        }
1274    }
1275
1276    public List<ShoppingOrder> findAll() throws SystemException {
1277        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1278    }
1279
1280    public List<ShoppingOrder> findAll(int start, int end)
1281        throws SystemException {
1282        return findAll(start, end, null);
1283    }
1284
1285    public List<ShoppingOrder> findAll(int start, int end, OrderByComparator obc)
1286        throws SystemException {
1287        Object[] finderArgs = new Object[] {
1288                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1289            };
1290
1291        List<ShoppingOrder> list = (List<ShoppingOrder>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1292                finderArgs, this);
1293
1294        if (list == null) {
1295            Session session = null;
1296
1297            try {
1298                session = openSession();
1299
1300                StringBundler query = null;
1301                String sql = null;
1302
1303                if (obc != null) {
1304                    query = new StringBundler(2 +
1305                            (obc.getOrderByFields().length * 3));
1306
1307                    query.append(_SQL_SELECT_SHOPPINGORDER);
1308
1309                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1310
1311                    sql = query.toString();
1312                }
1313
1314                else {
1315                    sql = _SQL_SELECT_SHOPPINGORDER.concat(ShoppingOrderModelImpl.ORDER_BY_JPQL);
1316                }
1317
1318                Query q = session.createQuery(sql);
1319
1320                if (obc == null) {
1321                    list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
1322                            start, end, false);
1323
1324                    Collections.sort(list);
1325                }
1326                else {
1327                    list = (List<ShoppingOrder>)QueryUtil.list(q, getDialect(),
1328                            start, end);
1329                }
1330            }
1331            catch (Exception e) {
1332                throw processException(e);
1333            }
1334            finally {
1335                if (list == null) {
1336                    list = new ArrayList<ShoppingOrder>();
1337                }
1338
1339                cacheResult(list);
1340
1341                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1342
1343                closeSession(session);
1344            }
1345        }
1346
1347        return list;
1348    }
1349
1350    public void removeByGroupId(long groupId) throws SystemException {
1351        for (ShoppingOrder shoppingOrder : findByGroupId(groupId)) {
1352            remove(shoppingOrder);
1353        }
1354    }
1355
1356    public void removeByNumber(String number)
1357        throws NoSuchOrderException, SystemException {
1358        ShoppingOrder shoppingOrder = findByNumber(number);
1359
1360        remove(shoppingOrder);
1361    }
1362
1363    public void removeByPPTxnId(String ppTxnId)
1364        throws NoSuchOrderException, SystemException {
1365        ShoppingOrder shoppingOrder = findByPPTxnId(ppTxnId);
1366
1367        remove(shoppingOrder);
1368    }
1369
1370    public void removeByG_U_PPPS(long groupId, long userId,
1371        String ppPaymentStatus) throws SystemException {
1372        for (ShoppingOrder shoppingOrder : findByG_U_PPPS(groupId, userId,
1373                ppPaymentStatus)) {
1374            remove(shoppingOrder);
1375        }
1376    }
1377
1378    public void removeAll() throws SystemException {
1379        for (ShoppingOrder shoppingOrder : findAll()) {
1380            remove(shoppingOrder);
1381        }
1382    }
1383
1384    public int countByGroupId(long groupId) throws SystemException {
1385        Object[] finderArgs = new Object[] { new Long(groupId) };
1386
1387        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
1388                finderArgs, this);
1389
1390        if (count == null) {
1391            Session session = null;
1392
1393            try {
1394                session = openSession();
1395
1396                StringBundler query = new StringBundler(2);
1397
1398                query.append(_SQL_COUNT_SHOPPINGORDER_WHERE);
1399
1400                query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
1401
1402                String sql = query.toString();
1403
1404                Query q = session.createQuery(sql);
1405
1406                QueryPos qPos = QueryPos.getInstance(q);
1407
1408                qPos.add(groupId);
1409
1410                count = (Long)q.uniqueResult();
1411            }
1412            catch (Exception e) {
1413                throw processException(e);
1414            }
1415            finally {
1416                if (count == null) {
1417                    count = Long.valueOf(0);
1418                }
1419
1420                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
1421                    finderArgs, count);
1422
1423                closeSession(session);
1424            }
1425        }
1426
1427        return count.intValue();
1428    }
1429
1430    public int countByNumber(String number) throws SystemException {
1431        Object[] finderArgs = new Object[] { number };
1432
1433        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_NUMBER,
1434                finderArgs, this);
1435
1436        if (count == null) {
1437            Session session = null;
1438
1439            try {
1440                session = openSession();
1441
1442                StringBundler query = new StringBundler(2);
1443
1444                query.append(_SQL_COUNT_SHOPPINGORDER_WHERE);
1445
1446                if (number == null) {
1447                    query.append(_FINDER_COLUMN_NUMBER_NUMBER_1);
1448                }
1449                else {
1450                    if (number.equals(StringPool.BLANK)) {
1451                        query.append(_FINDER_COLUMN_NUMBER_NUMBER_3);
1452                    }
1453                    else {
1454                        query.append(_FINDER_COLUMN_NUMBER_NUMBER_2);
1455                    }
1456                }
1457
1458                String sql = query.toString();
1459
1460                Query q = session.createQuery(sql);
1461
1462                QueryPos qPos = QueryPos.getInstance(q);
1463
1464                if (number != null) {
1465                    qPos.add(number);
1466                }
1467
1468                count = (Long)q.uniqueResult();
1469            }
1470            catch (Exception e) {
1471                throw processException(e);
1472            }
1473            finally {
1474                if (count == null) {
1475                    count = Long.valueOf(0);
1476                }
1477
1478                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_NUMBER,
1479                    finderArgs, count);
1480
1481                closeSession(session);
1482            }
1483        }
1484
1485        return count.intValue();
1486    }
1487
1488    public int countByPPTxnId(String ppTxnId) throws SystemException {
1489        Object[] finderArgs = new Object[] { ppTxnId };
1490
1491        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_PPTXNID,
1492                finderArgs, this);
1493
1494        if (count == null) {
1495            Session session = null;
1496
1497            try {
1498                session = openSession();
1499
1500                StringBundler query = new StringBundler(2);
1501
1502                query.append(_SQL_COUNT_SHOPPINGORDER_WHERE);
1503
1504                if (ppTxnId == null) {
1505                    query.append(_FINDER_COLUMN_PPTXNID_PPTXNID_1);
1506                }
1507                else {
1508                    if (ppTxnId.equals(StringPool.BLANK)) {
1509                        query.append(_FINDER_COLUMN_PPTXNID_PPTXNID_3);
1510                    }
1511                    else {
1512                        query.append(_FINDER_COLUMN_PPTXNID_PPTXNID_2);
1513                    }
1514                }
1515
1516                String sql = query.toString();
1517
1518                Query q = session.createQuery(sql);
1519
1520                QueryPos qPos = QueryPos.getInstance(q);
1521
1522                if (ppTxnId != null) {
1523                    qPos.add(ppTxnId);
1524                }
1525
1526                count = (Long)q.uniqueResult();
1527            }
1528            catch (Exception e) {
1529                throw processException(e);
1530            }
1531            finally {
1532                if (count == null) {
1533                    count = Long.valueOf(0);
1534                }
1535
1536                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_PPTXNID,
1537                    finderArgs, count);
1538
1539                closeSession(session);
1540            }
1541        }
1542
1543        return count.intValue();
1544    }
1545
1546    public int countByG_U_PPPS(long groupId, long userId, String ppPaymentStatus)
1547        throws SystemException {
1548        Object[] finderArgs = new Object[] {
1549                new Long(groupId), new Long(userId),
1550                
1551                ppPaymentStatus
1552            };
1553
1554        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_U_PPPS,
1555                finderArgs, this);
1556
1557        if (count == null) {
1558            Session session = null;
1559
1560            try {
1561                session = openSession();
1562
1563                StringBundler query = new StringBundler(4);
1564
1565                query.append(_SQL_COUNT_SHOPPINGORDER_WHERE);
1566
1567                query.append(_FINDER_COLUMN_G_U_PPPS_GROUPID_2);
1568
1569                query.append(_FINDER_COLUMN_G_U_PPPS_USERID_2);
1570
1571                if (ppPaymentStatus == null) {
1572                    query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_1);
1573                }
1574                else {
1575                    if (ppPaymentStatus.equals(StringPool.BLANK)) {
1576                        query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_3);
1577                    }
1578                    else {
1579                        query.append(_FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_2);
1580                    }
1581                }
1582
1583                String sql = query.toString();
1584
1585                Query q = session.createQuery(sql);
1586
1587                QueryPos qPos = QueryPos.getInstance(q);
1588
1589                qPos.add(groupId);
1590
1591                qPos.add(userId);
1592
1593                if (ppPaymentStatus != null) {
1594                    qPos.add(ppPaymentStatus);
1595                }
1596
1597                count = (Long)q.uniqueResult();
1598            }
1599            catch (Exception e) {
1600                throw processException(e);
1601            }
1602            finally {
1603                if (count == null) {
1604                    count = Long.valueOf(0);
1605                }
1606
1607                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_U_PPPS,
1608                    finderArgs, count);
1609
1610                closeSession(session);
1611            }
1612        }
1613
1614        return count.intValue();
1615    }
1616
1617    public int countAll() throws SystemException {
1618        Object[] finderArgs = new Object[0];
1619
1620        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1621                finderArgs, this);
1622
1623        if (count == null) {
1624            Session session = null;
1625
1626            try {
1627                session = openSession();
1628
1629                Query q = session.createQuery(_SQL_COUNT_SHOPPINGORDER);
1630
1631                count = (Long)q.uniqueResult();
1632            }
1633            catch (Exception e) {
1634                throw processException(e);
1635            }
1636            finally {
1637                if (count == null) {
1638                    count = Long.valueOf(0);
1639                }
1640
1641                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1642                    count);
1643
1644                closeSession(session);
1645            }
1646        }
1647
1648        return count.intValue();
1649    }
1650
1651    public void afterPropertiesSet() {
1652        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1653                    com.liferay.portal.util.PropsUtil.get(
1654                        "value.object.listener.com.liferay.portlet.shopping.model.ShoppingOrder")));
1655
1656        if (listenerClassNames.length > 0) {
1657            try {
1658                List<ModelListener<ShoppingOrder>> listenersList = new ArrayList<ModelListener<ShoppingOrder>>();
1659
1660                for (String listenerClassName : listenerClassNames) {
1661                    listenersList.add((ModelListener<ShoppingOrder>)Class.forName(
1662                            listenerClassName).newInstance());
1663                }
1664
1665                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1666            }
1667            catch (Exception e) {
1668                _log.error(e);
1669            }
1670        }
1671    }
1672
1673    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingCartPersistence")
1674    protected com.liferay.portlet.shopping.service.persistence.ShoppingCartPersistence shoppingCartPersistence;
1675    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingCategoryPersistence")
1676    protected com.liferay.portlet.shopping.service.persistence.ShoppingCategoryPersistence shoppingCategoryPersistence;
1677    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingCouponPersistence")
1678    protected com.liferay.portlet.shopping.service.persistence.ShoppingCouponPersistence shoppingCouponPersistence;
1679    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingItemPersistence")
1680    protected com.liferay.portlet.shopping.service.persistence.ShoppingItemPersistence shoppingItemPersistence;
1681    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingItemFieldPersistence")
1682    protected com.liferay.portlet.shopping.service.persistence.ShoppingItemFieldPersistence shoppingItemFieldPersistence;
1683    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingItemPricePersistence")
1684    protected com.liferay.portlet.shopping.service.persistence.ShoppingItemPricePersistence shoppingItemPricePersistence;
1685    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingOrderPersistence")
1686    protected com.liferay.portlet.shopping.service.persistence.ShoppingOrderPersistence shoppingOrderPersistence;
1687    @BeanReference(name = "com.liferay.portlet.shopping.service.persistence.ShoppingOrderItemPersistence")
1688    protected com.liferay.portlet.shopping.service.persistence.ShoppingOrderItemPersistence shoppingOrderItemPersistence;
1689    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence")
1690    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
1691    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
1692    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
1693    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
1694    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1695    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence")
1696    protected com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence mbMessagePersistence;
1697    private static final String _SQL_SELECT_SHOPPINGORDER = "SELECT shoppingOrder FROM ShoppingOrder shoppingOrder";
1698    private static final String _SQL_SELECT_SHOPPINGORDER_WHERE = "SELECT shoppingOrder FROM ShoppingOrder shoppingOrder WHERE ";
1699    private static final String _SQL_COUNT_SHOPPINGORDER = "SELECT COUNT(shoppingOrder) FROM ShoppingOrder shoppingOrder";
1700    private static final String _SQL_COUNT_SHOPPINGORDER_WHERE = "SELECT COUNT(shoppingOrder) FROM ShoppingOrder shoppingOrder WHERE ";
1701    private static final String _FINDER_COLUMN_GROUPID_GROUPID_2 = "shoppingOrder.groupId = ?";
1702    private static final String _FINDER_COLUMN_NUMBER_NUMBER_1 = "shoppingOrder.number IS NULL";
1703    private static final String _FINDER_COLUMN_NUMBER_NUMBER_2 = "shoppingOrder.number = ?";
1704    private static final String _FINDER_COLUMN_NUMBER_NUMBER_3 = "(shoppingOrder.number IS NULL OR shoppingOrder.number = ?)";
1705    private static final String _FINDER_COLUMN_PPTXNID_PPTXNID_1 = "shoppingOrder.ppTxnId IS NULL";
1706    private static final String _FINDER_COLUMN_PPTXNID_PPTXNID_2 = "shoppingOrder.ppTxnId = ?";
1707    private static final String _FINDER_COLUMN_PPTXNID_PPTXNID_3 = "(shoppingOrder.ppTxnId IS NULL OR shoppingOrder.ppTxnId = ?)";
1708    private static final String _FINDER_COLUMN_G_U_PPPS_GROUPID_2 = "shoppingOrder.groupId = ? AND ";
1709    private static final String _FINDER_COLUMN_G_U_PPPS_USERID_2 = "shoppingOrder.userId = ? AND ";
1710    private static final String _FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_1 = "shoppingOrder.ppPaymentStatus IS NULL";
1711    private static final String _FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_2 = "shoppingOrder.ppPaymentStatus = ?";
1712    private static final String _FINDER_COLUMN_G_U_PPPS_PPPAYMENTSTATUS_3 = "(shoppingOrder.ppPaymentStatus IS NULL OR shoppingOrder.ppPaymentStatus = ?)";
1713    private static final String _ORDER_BY_ENTITY_ALIAS = "shoppingOrder.";
1714    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No ShoppingOrder exists with the primary key ";
1715    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No ShoppingOrder exists with the key {";
1716    private static Log _log = LogFactoryUtil.getLog(ShoppingOrderPersistenceImpl.class);
1717}