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