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