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