1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   * 
13   */
14  
15  package com.liferay.portlet.journal.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.SystemException;
19  import com.liferay.portal.kernel.annotation.BeanReference;
20  import com.liferay.portal.kernel.cache.CacheRegistry;
21  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
22  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
23  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
24  import com.liferay.portal.kernel.dao.orm.FinderPath;
25  import com.liferay.portal.kernel.dao.orm.Query;
26  import com.liferay.portal.kernel.dao.orm.QueryPos;
27  import com.liferay.portal.kernel.dao.orm.QueryUtil;
28  import com.liferay.portal.kernel.dao.orm.Session;
29  import com.liferay.portal.kernel.log.Log;
30  import com.liferay.portal.kernel.log.LogFactoryUtil;
31  import com.liferay.portal.kernel.util.GetterUtil;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.kernel.util.Validator;
37  import com.liferay.portal.model.ModelListener;
38  import com.liferay.portal.service.persistence.BatchSessionUtil;
39  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
40  
41  import com.liferay.portlet.journal.NoSuchArticleImageException;
42  import com.liferay.portlet.journal.model.JournalArticleImage;
43  import com.liferay.portlet.journal.model.impl.JournalArticleImageImpl;
44  import com.liferay.portlet.journal.model.impl.JournalArticleImageModelImpl;
45  
46  import java.io.Serializable;
47  
48  import java.util.ArrayList;
49  import java.util.Collections;
50  import java.util.List;
51  
52  /**
53   * <a href="JournalArticleImagePersistenceImpl.java.html"><b><i>View Source</i></b></a>
54   *
55   * <p>
56   * ServiceBuilder generated this class. Modifications in this class will be
57   * overwritten the next time is generated.
58   * </p>
59   *
60   * @author    Brian Wing Shun Chan
61   * @see       JournalArticleImagePersistence
62   * @see       JournalArticleImageUtil
63   * @generated
64   */
65  public class JournalArticleImagePersistenceImpl extends BasePersistenceImpl<JournalArticleImage>
66      implements JournalArticleImagePersistence {
67      public static final String FINDER_CLASS_NAME_ENTITY = JournalArticleImageImpl.class.getName();
68      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
69          ".List";
70      public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
71              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
72              FINDER_CLASS_NAME_LIST, "findByGroupId",
73              new String[] { Long.class.getName() });
74      public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
75              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
76              FINDER_CLASS_NAME_LIST, "findByGroupId",
77              new String[] {
78                  Long.class.getName(),
79                  
80              "java.lang.Integer", "java.lang.Integer",
81                  "com.liferay.portal.kernel.util.OrderByComparator"
82              });
83      public static final FinderPath FINDER_PATH_COUNT_BY_GROUPID = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
84              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
85              FINDER_CLASS_NAME_LIST, "countByGroupId",
86              new String[] { Long.class.getName() });
87      public static final FinderPath FINDER_PATH_FIND_BY_TEMPIMAGE = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
88              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
89              FINDER_CLASS_NAME_LIST, "findByTempImage",
90              new String[] { Boolean.class.getName() });
91      public static final FinderPath FINDER_PATH_FIND_BY_OBC_TEMPIMAGE = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
92              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
93              FINDER_CLASS_NAME_LIST, "findByTempImage",
94              new String[] {
95                  Boolean.class.getName(),
96                  
97              "java.lang.Integer", "java.lang.Integer",
98                  "com.liferay.portal.kernel.util.OrderByComparator"
99              });
100     public static final FinderPath FINDER_PATH_COUNT_BY_TEMPIMAGE = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
101             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
102             FINDER_CLASS_NAME_LIST, "countByTempImage",
103             new String[] { Boolean.class.getName() });
104     public static final FinderPath FINDER_PATH_FIND_BY_G_A_V = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
105             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
106             FINDER_CLASS_NAME_LIST, "findByG_A_V",
107             new String[] {
108                 Long.class.getName(), String.class.getName(),
109                 Double.class.getName()
110             });
111     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_A_V = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
112             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
113             FINDER_CLASS_NAME_LIST, "findByG_A_V",
114             new String[] {
115                 Long.class.getName(), String.class.getName(),
116                 Double.class.getName(),
117                 
118             "java.lang.Integer", "java.lang.Integer",
119                 "com.liferay.portal.kernel.util.OrderByComparator"
120             });
121     public static final FinderPath FINDER_PATH_COUNT_BY_G_A_V = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
122             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
123             FINDER_CLASS_NAME_LIST, "countByG_A_V",
124             new String[] {
125                 Long.class.getName(), String.class.getName(),
126                 Double.class.getName()
127             });
128     public static final FinderPath FINDER_PATH_FETCH_BY_G_A_V_E_L = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
129             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
130             FINDER_CLASS_NAME_ENTITY, "fetchByG_A_V_E_L",
131             new String[] {
132                 Long.class.getName(), String.class.getName(),
133                 Double.class.getName(), String.class.getName(),
134                 String.class.getName()
135             });
136     public static final FinderPath FINDER_PATH_COUNT_BY_G_A_V_E_L = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
137             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
138             FINDER_CLASS_NAME_LIST, "countByG_A_V_E_L",
139             new String[] {
140                 Long.class.getName(), String.class.getName(),
141                 Double.class.getName(), String.class.getName(),
142                 String.class.getName()
143             });
144     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
145             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
146             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
147     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
148             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
149             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
150 
151     public void cacheResult(JournalArticleImage journalArticleImage) {
152         EntityCacheUtil.putResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
153             JournalArticleImageImpl.class, journalArticleImage.getPrimaryKey(),
154             journalArticleImage);
155 
156         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
157             new Object[] {
158                 new Long(journalArticleImage.getGroupId()),
159                 
160             journalArticleImage.getArticleId(),
161                 new Double(journalArticleImage.getVersion()),
162                 
163             journalArticleImage.getElName(),
164                 
165             journalArticleImage.getLanguageId()
166             }, journalArticleImage);
167     }
168 
169     public void cacheResult(List<JournalArticleImage> journalArticleImages) {
170         for (JournalArticleImage journalArticleImage : journalArticleImages) {
171             if (EntityCacheUtil.getResult(
172                         JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
173                         JournalArticleImageImpl.class,
174                         journalArticleImage.getPrimaryKey(), this) == null) {
175                 cacheResult(journalArticleImage);
176             }
177         }
178     }
179 
180     public void clearCache() {
181         CacheRegistry.clear(JournalArticleImageImpl.class.getName());
182         EntityCacheUtil.clearCache(JournalArticleImageImpl.class.getName());
183         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
184         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
185     }
186 
187     public JournalArticleImage create(long articleImageId) {
188         JournalArticleImage journalArticleImage = new JournalArticleImageImpl();
189 
190         journalArticleImage.setNew(true);
191         journalArticleImage.setPrimaryKey(articleImageId);
192 
193         return journalArticleImage;
194     }
195 
196     public JournalArticleImage remove(Serializable primaryKey)
197         throws NoSuchModelException, SystemException {
198         return remove(((Long)primaryKey).longValue());
199     }
200 
201     public JournalArticleImage remove(long articleImageId)
202         throws NoSuchArticleImageException, SystemException {
203         Session session = null;
204 
205         try {
206             session = openSession();
207 
208             JournalArticleImage journalArticleImage = (JournalArticleImage)session.get(JournalArticleImageImpl.class,
209                     new Long(articleImageId));
210 
211             if (journalArticleImage == null) {
212                 if (_log.isWarnEnabled()) {
213                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
214                         articleImageId);
215                 }
216 
217                 throw new NoSuchArticleImageException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
218                     articleImageId);
219             }
220 
221             return remove(journalArticleImage);
222         }
223         catch (NoSuchArticleImageException nsee) {
224             throw nsee;
225         }
226         catch (Exception e) {
227             throw processException(e);
228         }
229         finally {
230             closeSession(session);
231         }
232     }
233 
234     public JournalArticleImage remove(JournalArticleImage journalArticleImage)
235         throws SystemException {
236         for (ModelListener<JournalArticleImage> listener : listeners) {
237             listener.onBeforeRemove(journalArticleImage);
238         }
239 
240         journalArticleImage = removeImpl(journalArticleImage);
241 
242         for (ModelListener<JournalArticleImage> listener : listeners) {
243             listener.onAfterRemove(journalArticleImage);
244         }
245 
246         return journalArticleImage;
247     }
248 
249     protected JournalArticleImage removeImpl(
250         JournalArticleImage journalArticleImage) throws SystemException {
251         journalArticleImage = toUnwrappedModel(journalArticleImage);
252 
253         Session session = null;
254 
255         try {
256             session = openSession();
257 
258             if (journalArticleImage.isCachedModel() ||
259                     BatchSessionUtil.isEnabled()) {
260                 Object staleObject = session.get(JournalArticleImageImpl.class,
261                         journalArticleImage.getPrimaryKeyObj());
262 
263                 if (staleObject != null) {
264                     session.evict(staleObject);
265                 }
266             }
267 
268             session.delete(journalArticleImage);
269 
270             session.flush();
271         }
272         catch (Exception e) {
273             throw processException(e);
274         }
275         finally {
276             closeSession(session);
277         }
278 
279         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
280 
281         JournalArticleImageModelImpl journalArticleImageModelImpl = (JournalArticleImageModelImpl)journalArticleImage;
282 
283         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
284             new Object[] {
285                 new Long(journalArticleImageModelImpl.getOriginalGroupId()),
286                 
287             journalArticleImageModelImpl.getOriginalArticleId(),
288                 new Double(journalArticleImageModelImpl.getOriginalVersion()),
289                 
290             journalArticleImageModelImpl.getOriginalElName(),
291                 
292             journalArticleImageModelImpl.getOriginalLanguageId()
293             });
294 
295         EntityCacheUtil.removeResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
296             JournalArticleImageImpl.class, journalArticleImage.getPrimaryKey());
297 
298         return journalArticleImage;
299     }
300 
301     /**
302      * @deprecated Use {@link BasePersistence#update(com.liferay.portal.model.BaseModel, boolean)}.
303      */
304     public JournalArticleImage update(JournalArticleImage journalArticleImage)
305         throws SystemException {
306         if (_log.isWarnEnabled()) {
307             _log.warn(
308                 "Using the deprecated update(JournalArticleImage journalArticleImage) method. Use update(JournalArticleImage journalArticleImage, boolean merge) instead.");
309         }
310 
311         return update(journalArticleImage, false);
312     }
313 
314     public JournalArticleImage updateImpl(
315         com.liferay.portlet.journal.model.JournalArticleImage journalArticleImage,
316         boolean merge) throws SystemException {
317         journalArticleImage = toUnwrappedModel(journalArticleImage);
318 
319         boolean isNew = journalArticleImage.isNew();
320 
321         JournalArticleImageModelImpl journalArticleImageModelImpl = (JournalArticleImageModelImpl)journalArticleImage;
322 
323         Session session = null;
324 
325         try {
326             session = openSession();
327 
328             BatchSessionUtil.update(session, journalArticleImage, merge);
329 
330             journalArticleImage.setNew(false);
331         }
332         catch (Exception e) {
333             throw processException(e);
334         }
335         finally {
336             closeSession(session);
337         }
338 
339         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
340 
341         EntityCacheUtil.putResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
342             JournalArticleImageImpl.class, journalArticleImage.getPrimaryKey(),
343             journalArticleImage);
344 
345         if (!isNew &&
346                 ((journalArticleImage.getGroupId() != journalArticleImageModelImpl.getOriginalGroupId()) ||
347                 !Validator.equals(journalArticleImage.getArticleId(),
348                     journalArticleImageModelImpl.getOriginalArticleId()) ||
349                 (journalArticleImage.getVersion() != journalArticleImageModelImpl.getOriginalVersion()) ||
350                 !Validator.equals(journalArticleImage.getElName(),
351                     journalArticleImageModelImpl.getOriginalElName()) ||
352                 !Validator.equals(journalArticleImage.getLanguageId(),
353                     journalArticleImageModelImpl.getOriginalLanguageId()))) {
354             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
355                 new Object[] {
356                     new Long(journalArticleImageModelImpl.getOriginalGroupId()),
357                     
358                 journalArticleImageModelImpl.getOriginalArticleId(),
359                     new Double(journalArticleImageModelImpl.getOriginalVersion()),
360                     
361                 journalArticleImageModelImpl.getOriginalElName(),
362                     
363                 journalArticleImageModelImpl.getOriginalLanguageId()
364                 });
365         }
366 
367         if (isNew ||
368                 ((journalArticleImage.getGroupId() != journalArticleImageModelImpl.getOriginalGroupId()) ||
369                 !Validator.equals(journalArticleImage.getArticleId(),
370                     journalArticleImageModelImpl.getOriginalArticleId()) ||
371                 (journalArticleImage.getVersion() != journalArticleImageModelImpl.getOriginalVersion()) ||
372                 !Validator.equals(journalArticleImage.getElName(),
373                     journalArticleImageModelImpl.getOriginalElName()) ||
374                 !Validator.equals(journalArticleImage.getLanguageId(),
375                     journalArticleImageModelImpl.getOriginalLanguageId()))) {
376             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
377                 new Object[] {
378                     new Long(journalArticleImage.getGroupId()),
379                     
380                 journalArticleImage.getArticleId(),
381                     new Double(journalArticleImage.getVersion()),
382                     
383                 journalArticleImage.getElName(),
384                     
385                 journalArticleImage.getLanguageId()
386                 }, journalArticleImage);
387         }
388 
389         return journalArticleImage;
390     }
391 
392     protected JournalArticleImage toUnwrappedModel(
393         JournalArticleImage journalArticleImage) {
394         if (journalArticleImage instanceof JournalArticleImageImpl) {
395             return journalArticleImage;
396         }
397 
398         JournalArticleImageImpl journalArticleImageImpl = new JournalArticleImageImpl();
399 
400         journalArticleImageImpl.setNew(journalArticleImage.isNew());
401         journalArticleImageImpl.setPrimaryKey(journalArticleImage.getPrimaryKey());
402 
403         journalArticleImageImpl.setArticleImageId(journalArticleImage.getArticleImageId());
404         journalArticleImageImpl.setGroupId(journalArticleImage.getGroupId());
405         journalArticleImageImpl.setArticleId(journalArticleImage.getArticleId());
406         journalArticleImageImpl.setVersion(journalArticleImage.getVersion());
407         journalArticleImageImpl.setElName(journalArticleImage.getElName());
408         journalArticleImageImpl.setLanguageId(journalArticleImage.getLanguageId());
409         journalArticleImageImpl.setTempImage(journalArticleImage.isTempImage());
410 
411         return journalArticleImageImpl;
412     }
413 
414     public JournalArticleImage findByPrimaryKey(Serializable primaryKey)
415         throws NoSuchModelException, SystemException {
416         return findByPrimaryKey(((Long)primaryKey).longValue());
417     }
418 
419     public JournalArticleImage findByPrimaryKey(long articleImageId)
420         throws NoSuchArticleImageException, SystemException {
421         JournalArticleImage journalArticleImage = fetchByPrimaryKey(articleImageId);
422 
423         if (journalArticleImage == null) {
424             if (_log.isWarnEnabled()) {
425                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + articleImageId);
426             }
427 
428             throw new NoSuchArticleImageException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
429                 articleImageId);
430         }
431 
432         return journalArticleImage;
433     }
434 
435     public JournalArticleImage fetchByPrimaryKey(Serializable primaryKey)
436         throws SystemException {
437         return fetchByPrimaryKey(((Long)primaryKey).longValue());
438     }
439 
440     public JournalArticleImage fetchByPrimaryKey(long articleImageId)
441         throws SystemException {
442         JournalArticleImage journalArticleImage = (JournalArticleImage)EntityCacheUtil.getResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
443                 JournalArticleImageImpl.class, articleImageId, this);
444 
445         if (journalArticleImage == null) {
446             Session session = null;
447 
448             try {
449                 session = openSession();
450 
451                 journalArticleImage = (JournalArticleImage)session.get(JournalArticleImageImpl.class,
452                         new Long(articleImageId));
453             }
454             catch (Exception e) {
455                 throw processException(e);
456             }
457             finally {
458                 if (journalArticleImage != null) {
459                     cacheResult(journalArticleImage);
460                 }
461 
462                 closeSession(session);
463             }
464         }
465 
466         return journalArticleImage;
467     }
468 
469     public List<JournalArticleImage> findByGroupId(long groupId)
470         throws SystemException {
471         Object[] finderArgs = new Object[] { new Long(groupId) };
472 
473         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
474                 finderArgs, this);
475 
476         if (list == null) {
477             Session session = null;
478 
479             try {
480                 session = openSession();
481 
482                 StringBundler query = new StringBundler(2);
483 
484                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
485 
486                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
487 
488                 String sql = query.toString();
489 
490                 Query q = session.createQuery(sql);
491 
492                 QueryPos qPos = QueryPos.getInstance(q);
493 
494                 qPos.add(groupId);
495 
496                 list = q.list();
497             }
498             catch (Exception e) {
499                 throw processException(e);
500             }
501             finally {
502                 if (list == null) {
503                     list = new ArrayList<JournalArticleImage>();
504                 }
505 
506                 cacheResult(list);
507 
508                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
509                     finderArgs, list);
510 
511                 closeSession(session);
512             }
513         }
514 
515         return list;
516     }
517 
518     public List<JournalArticleImage> findByGroupId(long groupId, int start,
519         int end) throws SystemException {
520         return findByGroupId(groupId, start, end, null);
521     }
522 
523     public List<JournalArticleImage> findByGroupId(long groupId, int start,
524         int end, OrderByComparator obc) throws SystemException {
525         Object[] finderArgs = new Object[] {
526                 new Long(groupId),
527                 
528                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
529             };
530 
531         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
532                 finderArgs, this);
533 
534         if (list == null) {
535             Session session = null;
536 
537             try {
538                 session = openSession();
539 
540                 StringBundler query = null;
541 
542                 if (obc != null) {
543                     query = new StringBundler(3 +
544                             (obc.getOrderByFields().length * 3));
545                 }
546                 else {
547                     query = new StringBundler(2);
548                 }
549 
550                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
551 
552                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
553 
554                 if (obc != null) {
555                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
556                 }
557 
558                 String sql = query.toString();
559 
560                 Query q = session.createQuery(sql);
561 
562                 QueryPos qPos = QueryPos.getInstance(q);
563 
564                 qPos.add(groupId);
565 
566                 list = (List<JournalArticleImage>)QueryUtil.list(q,
567                         getDialect(), start, end);
568             }
569             catch (Exception e) {
570                 throw processException(e);
571             }
572             finally {
573                 if (list == null) {
574                     list = new ArrayList<JournalArticleImage>();
575                 }
576 
577                 cacheResult(list);
578 
579                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
580                     finderArgs, list);
581 
582                 closeSession(session);
583             }
584         }
585 
586         return list;
587     }
588 
589     public JournalArticleImage findByGroupId_First(long groupId,
590         OrderByComparator obc)
591         throws NoSuchArticleImageException, SystemException {
592         List<JournalArticleImage> list = findByGroupId(groupId, 0, 1, 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("groupId=");
600             msg.append(groupId);
601 
602             msg.append(StringPool.CLOSE_CURLY_BRACE);
603 
604             throw new NoSuchArticleImageException(msg.toString());
605         }
606         else {
607             return list.get(0);
608         }
609     }
610 
611     public JournalArticleImage findByGroupId_Last(long groupId,
612         OrderByComparator obc)
613         throws NoSuchArticleImageException, SystemException {
614         int count = countByGroupId(groupId);
615 
616         List<JournalArticleImage> list = findByGroupId(groupId, count - 1,
617                 count, obc);
618 
619         if (list.isEmpty()) {
620             StringBundler msg = new StringBundler(4);
621 
622             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
623 
624             msg.append("groupId=");
625             msg.append(groupId);
626 
627             msg.append(StringPool.CLOSE_CURLY_BRACE);
628 
629             throw new NoSuchArticleImageException(msg.toString());
630         }
631         else {
632             return list.get(0);
633         }
634     }
635 
636     public JournalArticleImage[] findByGroupId_PrevAndNext(
637         long articleImageId, long groupId, OrderByComparator obc)
638         throws NoSuchArticleImageException, SystemException {
639         JournalArticleImage journalArticleImage = findByPrimaryKey(articleImageId);
640 
641         int count = countByGroupId(groupId);
642 
643         Session session = null;
644 
645         try {
646             session = openSession();
647 
648             StringBundler query = null;
649 
650             if (obc != null) {
651                 query = new StringBundler(3 +
652                         (obc.getOrderByFields().length * 3));
653             }
654             else {
655                 query = new StringBundler(2);
656             }
657 
658             query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
659 
660             query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
661 
662             if (obc != null) {
663                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
664             }
665 
666             String sql = query.toString();
667 
668             Query q = session.createQuery(sql);
669 
670             QueryPos qPos = QueryPos.getInstance(q);
671 
672             qPos.add(groupId);
673 
674             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
675                     journalArticleImage);
676 
677             JournalArticleImage[] array = new JournalArticleImageImpl[3];
678 
679             array[0] = (JournalArticleImage)objArray[0];
680             array[1] = (JournalArticleImage)objArray[1];
681             array[2] = (JournalArticleImage)objArray[2];
682 
683             return array;
684         }
685         catch (Exception e) {
686             throw processException(e);
687         }
688         finally {
689             closeSession(session);
690         }
691     }
692 
693     public List<JournalArticleImage> findByTempImage(boolean tempImage)
694         throws SystemException {
695         Object[] finderArgs = new Object[] { Boolean.valueOf(tempImage) };
696 
697         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_TEMPIMAGE,
698                 finderArgs, this);
699 
700         if (list == null) {
701             Session session = null;
702 
703             try {
704                 session = openSession();
705 
706                 StringBundler query = new StringBundler(2);
707 
708                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
709 
710                 query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
711 
712                 String sql = query.toString();
713 
714                 Query q = session.createQuery(sql);
715 
716                 QueryPos qPos = QueryPos.getInstance(q);
717 
718                 qPos.add(tempImage);
719 
720                 list = q.list();
721             }
722             catch (Exception e) {
723                 throw processException(e);
724             }
725             finally {
726                 if (list == null) {
727                     list = new ArrayList<JournalArticleImage>();
728                 }
729 
730                 cacheResult(list);
731 
732                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_TEMPIMAGE,
733                     finderArgs, list);
734 
735                 closeSession(session);
736             }
737         }
738 
739         return list;
740     }
741 
742     public List<JournalArticleImage> findByTempImage(boolean tempImage,
743         int start, int end) throws SystemException {
744         return findByTempImage(tempImage, start, end, null);
745     }
746 
747     public List<JournalArticleImage> findByTempImage(boolean tempImage,
748         int start, int end, OrderByComparator obc) throws SystemException {
749         Object[] finderArgs = new Object[] {
750                 Boolean.valueOf(tempImage),
751                 
752                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
753             };
754 
755         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_TEMPIMAGE,
756                 finderArgs, this);
757 
758         if (list == null) {
759             Session session = null;
760 
761             try {
762                 session = openSession();
763 
764                 StringBundler query = null;
765 
766                 if (obc != null) {
767                     query = new StringBundler(3 +
768                             (obc.getOrderByFields().length * 3));
769                 }
770                 else {
771                     query = new StringBundler(2);
772                 }
773 
774                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
775 
776                 query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
777 
778                 if (obc != null) {
779                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
780                 }
781 
782                 String sql = query.toString();
783 
784                 Query q = session.createQuery(sql);
785 
786                 QueryPos qPos = QueryPos.getInstance(q);
787 
788                 qPos.add(tempImage);
789 
790                 list = (List<JournalArticleImage>)QueryUtil.list(q,
791                         getDialect(), start, end);
792             }
793             catch (Exception e) {
794                 throw processException(e);
795             }
796             finally {
797                 if (list == null) {
798                     list = new ArrayList<JournalArticleImage>();
799                 }
800 
801                 cacheResult(list);
802 
803                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_TEMPIMAGE,
804                     finderArgs, list);
805 
806                 closeSession(session);
807             }
808         }
809 
810         return list;
811     }
812 
813     public JournalArticleImage findByTempImage_First(boolean tempImage,
814         OrderByComparator obc)
815         throws NoSuchArticleImageException, SystemException {
816         List<JournalArticleImage> list = findByTempImage(tempImage, 0, 1, obc);
817 
818         if (list.isEmpty()) {
819             StringBundler msg = new StringBundler(4);
820 
821             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
822 
823             msg.append("tempImage=");
824             msg.append(tempImage);
825 
826             msg.append(StringPool.CLOSE_CURLY_BRACE);
827 
828             throw new NoSuchArticleImageException(msg.toString());
829         }
830         else {
831             return list.get(0);
832         }
833     }
834 
835     public JournalArticleImage findByTempImage_Last(boolean tempImage,
836         OrderByComparator obc)
837         throws NoSuchArticleImageException, SystemException {
838         int count = countByTempImage(tempImage);
839 
840         List<JournalArticleImage> list = findByTempImage(tempImage, count - 1,
841                 count, obc);
842 
843         if (list.isEmpty()) {
844             StringBundler msg = new StringBundler(4);
845 
846             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
847 
848             msg.append("tempImage=");
849             msg.append(tempImage);
850 
851             msg.append(StringPool.CLOSE_CURLY_BRACE);
852 
853             throw new NoSuchArticleImageException(msg.toString());
854         }
855         else {
856             return list.get(0);
857         }
858     }
859 
860     public JournalArticleImage[] findByTempImage_PrevAndNext(
861         long articleImageId, boolean tempImage, OrderByComparator obc)
862         throws NoSuchArticleImageException, SystemException {
863         JournalArticleImage journalArticleImage = findByPrimaryKey(articleImageId);
864 
865         int count = countByTempImage(tempImage);
866 
867         Session session = null;
868 
869         try {
870             session = openSession();
871 
872             StringBundler query = null;
873 
874             if (obc != null) {
875                 query = new StringBundler(3 +
876                         (obc.getOrderByFields().length * 3));
877             }
878             else {
879                 query = new StringBundler(2);
880             }
881 
882             query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
883 
884             query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
885 
886             if (obc != null) {
887                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
888             }
889 
890             String sql = query.toString();
891 
892             Query q = session.createQuery(sql);
893 
894             QueryPos qPos = QueryPos.getInstance(q);
895 
896             qPos.add(tempImage);
897 
898             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
899                     journalArticleImage);
900 
901             JournalArticleImage[] array = new JournalArticleImageImpl[3];
902 
903             array[0] = (JournalArticleImage)objArray[0];
904             array[1] = (JournalArticleImage)objArray[1];
905             array[2] = (JournalArticleImage)objArray[2];
906 
907             return array;
908         }
909         catch (Exception e) {
910             throw processException(e);
911         }
912         finally {
913             closeSession(session);
914         }
915     }
916 
917     public List<JournalArticleImage> findByG_A_V(long groupId,
918         String articleId, double version) throws SystemException {
919         Object[] finderArgs = new Object[] {
920                 new Long(groupId),
921                 
922                 articleId, new Double(version)
923             };
924 
925         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_A_V,
926                 finderArgs, this);
927 
928         if (list == null) {
929             Session session = null;
930 
931             try {
932                 session = openSession();
933 
934                 StringBundler query = new StringBundler(4);
935 
936                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
937 
938                 query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
939 
940                 if (articleId == null) {
941                     query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
942                 }
943                 else {
944                     if (articleId.equals(StringPool.BLANK)) {
945                         query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
946                     }
947                     else {
948                         query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
949                     }
950                 }
951 
952                 query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
953 
954                 String sql = query.toString();
955 
956                 Query q = session.createQuery(sql);
957 
958                 QueryPos qPos = QueryPos.getInstance(q);
959 
960                 qPos.add(groupId);
961 
962                 if (articleId != null) {
963                     qPos.add(articleId);
964                 }
965 
966                 qPos.add(version);
967 
968                 list = q.list();
969             }
970             catch (Exception e) {
971                 throw processException(e);
972             }
973             finally {
974                 if (list == null) {
975                     list = new ArrayList<JournalArticleImage>();
976                 }
977 
978                 cacheResult(list);
979 
980                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_A_V,
981                     finderArgs, list);
982 
983                 closeSession(session);
984             }
985         }
986 
987         return list;
988     }
989 
990     public List<JournalArticleImage> findByG_A_V(long groupId,
991         String articleId, double version, int start, int end)
992         throws SystemException {
993         return findByG_A_V(groupId, articleId, version, start, end, null);
994     }
995 
996     public List<JournalArticleImage> findByG_A_V(long groupId,
997         String articleId, double version, int start, int end,
998         OrderByComparator obc) throws SystemException {
999         Object[] finderArgs = new Object[] {
1000                new Long(groupId),
1001                
1002                articleId, new Double(version),
1003                
1004                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1005            };
1006
1007        List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_A_V,
1008                finderArgs, this);
1009
1010        if (list == null) {
1011            Session session = null;
1012
1013            try {
1014                session = openSession();
1015
1016                StringBundler query = null;
1017
1018                if (obc != null) {
1019                    query = new StringBundler(5 +
1020                            (obc.getOrderByFields().length * 3));
1021                }
1022                else {
1023                    query = new StringBundler(4);
1024                }
1025
1026                query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
1027
1028                query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
1029
1030                if (articleId == null) {
1031                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
1032                }
1033                else {
1034                    if (articleId.equals(StringPool.BLANK)) {
1035                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
1036                    }
1037                    else {
1038                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
1039                    }
1040                }
1041
1042                query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
1043
1044                if (obc != null) {
1045                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1046                }
1047
1048                String sql = query.toString();
1049
1050                Query q = session.createQuery(sql);
1051
1052                QueryPos qPos = QueryPos.getInstance(q);
1053
1054                qPos.add(groupId);
1055
1056                if (articleId != null) {
1057                    qPos.add(articleId);
1058                }
1059
1060                qPos.add(version);
1061
1062                list = (List<JournalArticleImage>)QueryUtil.list(q,
1063                        getDialect(), start, end);
1064            }
1065            catch (Exception e) {
1066                throw processException(e);
1067            }
1068            finally {
1069                if (list == null) {
1070                    list = new ArrayList<JournalArticleImage>();
1071                }
1072
1073                cacheResult(list);
1074
1075                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_A_V,
1076                    finderArgs, list);
1077
1078                closeSession(session);
1079            }
1080        }
1081
1082        return list;
1083    }
1084
1085    public JournalArticleImage findByG_A_V_First(long groupId,
1086        String articleId, double version, OrderByComparator obc)
1087        throws NoSuchArticleImageException, SystemException {
1088        List<JournalArticleImage> list = findByG_A_V(groupId, articleId,
1089                version, 0, 1, obc);
1090
1091        if (list.isEmpty()) {
1092            StringBundler msg = new StringBundler(8);
1093
1094            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1095
1096            msg.append("groupId=");
1097            msg.append(groupId);
1098
1099            msg.append(", articleId=");
1100            msg.append(articleId);
1101
1102            msg.append(", version=");
1103            msg.append(version);
1104
1105            msg.append(StringPool.CLOSE_CURLY_BRACE);
1106
1107            throw new NoSuchArticleImageException(msg.toString());
1108        }
1109        else {
1110            return list.get(0);
1111        }
1112    }
1113
1114    public JournalArticleImage findByG_A_V_Last(long groupId, String articleId,
1115        double version, OrderByComparator obc)
1116        throws NoSuchArticleImageException, SystemException {
1117        int count = countByG_A_V(groupId, articleId, version);
1118
1119        List<JournalArticleImage> list = findByG_A_V(groupId, articleId,
1120                version, count - 1, count, obc);
1121
1122        if (list.isEmpty()) {
1123            StringBundler msg = new StringBundler(8);
1124
1125            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1126
1127            msg.append("groupId=");
1128            msg.append(groupId);
1129
1130            msg.append(", articleId=");
1131            msg.append(articleId);
1132
1133            msg.append(", version=");
1134            msg.append(version);
1135
1136            msg.append(StringPool.CLOSE_CURLY_BRACE);
1137
1138            throw new NoSuchArticleImageException(msg.toString());
1139        }
1140        else {
1141            return list.get(0);
1142        }
1143    }
1144
1145    public JournalArticleImage[] findByG_A_V_PrevAndNext(long articleImageId,
1146        long groupId, String articleId, double version, OrderByComparator obc)
1147        throws NoSuchArticleImageException, SystemException {
1148        JournalArticleImage journalArticleImage = findByPrimaryKey(articleImageId);
1149
1150        int count = countByG_A_V(groupId, articleId, version);
1151
1152        Session session = null;
1153
1154        try {
1155            session = openSession();
1156
1157            StringBundler query = null;
1158
1159            if (obc != null) {
1160                query = new StringBundler(5 +
1161                        (obc.getOrderByFields().length * 3));
1162            }
1163            else {
1164                query = new StringBundler(4);
1165            }
1166
1167            query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
1168
1169            query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
1170
1171            if (articleId == null) {
1172                query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
1173            }
1174            else {
1175                if (articleId.equals(StringPool.BLANK)) {
1176                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
1177                }
1178                else {
1179                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
1180                }
1181            }
1182
1183            query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
1184
1185            if (obc != null) {
1186                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1187            }
1188
1189            String sql = query.toString();
1190
1191            Query q = session.createQuery(sql);
1192
1193            QueryPos qPos = QueryPos.getInstance(q);
1194
1195            qPos.add(groupId);
1196
1197            if (articleId != null) {
1198                qPos.add(articleId);
1199            }
1200
1201            qPos.add(version);
1202
1203            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1204                    journalArticleImage);
1205
1206            JournalArticleImage[] array = new JournalArticleImageImpl[3];
1207
1208            array[0] = (JournalArticleImage)objArray[0];
1209            array[1] = (JournalArticleImage)objArray[1];
1210            array[2] = (JournalArticleImage)objArray[2];
1211
1212            return array;
1213        }
1214        catch (Exception e) {
1215            throw processException(e);
1216        }
1217        finally {
1218            closeSession(session);
1219        }
1220    }
1221
1222    public JournalArticleImage findByG_A_V_E_L(long groupId, String articleId,
1223        double version, String elName, String languageId)
1224        throws NoSuchArticleImageException, SystemException {
1225        JournalArticleImage journalArticleImage = fetchByG_A_V_E_L(groupId,
1226                articleId, version, elName, languageId);
1227
1228        if (journalArticleImage == null) {
1229            StringBundler msg = new StringBundler(12);
1230
1231            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1232
1233            msg.append("groupId=");
1234            msg.append(groupId);
1235
1236            msg.append(", articleId=");
1237            msg.append(articleId);
1238
1239            msg.append(", version=");
1240            msg.append(version);
1241
1242            msg.append(", elName=");
1243            msg.append(elName);
1244
1245            msg.append(", languageId=");
1246            msg.append(languageId);
1247
1248            msg.append(StringPool.CLOSE_CURLY_BRACE);
1249
1250            if (_log.isWarnEnabled()) {
1251                _log.warn(msg.toString());
1252            }
1253
1254            throw new NoSuchArticleImageException(msg.toString());
1255        }
1256
1257        return journalArticleImage;
1258    }
1259
1260    public JournalArticleImage fetchByG_A_V_E_L(long groupId, String articleId,
1261        double version, String elName, String languageId)
1262        throws SystemException {
1263        return fetchByG_A_V_E_L(groupId, articleId, version, elName,
1264            languageId, true);
1265    }
1266
1267    public JournalArticleImage fetchByG_A_V_E_L(long groupId, String articleId,
1268        double version, String elName, String languageId,
1269        boolean retrieveFromCache) throws SystemException {
1270        Object[] finderArgs = new Object[] {
1271                new Long(groupId),
1272                
1273                articleId, new Double(version),
1274                
1275                elName,
1276                
1277                languageId
1278            };
1279
1280        Object result = null;
1281
1282        if (retrieveFromCache) {
1283            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
1284                    finderArgs, this);
1285        }
1286
1287        if (result == null) {
1288            Session session = null;
1289
1290            try {
1291                session = openSession();
1292
1293                StringBundler query = new StringBundler(6);
1294
1295                query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
1296
1297                query.append(_FINDER_COLUMN_G_A_V_E_L_GROUPID_2);
1298
1299                if (articleId == null) {
1300                    query.append(_FINDER_COLUMN_G_A_V_E_L_ARTICLEID_1);
1301                }
1302                else {
1303                    if (articleId.equals(StringPool.BLANK)) {
1304                        query.append(_FINDER_COLUMN_G_A_V_E_L_ARTICLEID_3);
1305                    }
1306                    else {
1307                        query.append(_FINDER_COLUMN_G_A_V_E_L_ARTICLEID_2);
1308                    }
1309                }
1310
1311                query.append(_FINDER_COLUMN_G_A_V_E_L_VERSION_2);
1312
1313                if (elName == null) {
1314                    query.append(_FINDER_COLUMN_G_A_V_E_L_ELNAME_1);
1315                }
1316                else {
1317                    if (elName.equals(StringPool.BLANK)) {
1318                        query.append(_FINDER_COLUMN_G_A_V_E_L_ELNAME_3);
1319                    }
1320                    else {
1321                        query.append(_FINDER_COLUMN_G_A_V_E_L_ELNAME_2);
1322                    }
1323                }
1324
1325                if (languageId == null) {
1326                    query.append(_FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_1);
1327                }
1328                else {
1329                    if (languageId.equals(StringPool.BLANK)) {
1330                        query.append(_FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_3);
1331                    }
1332                    else {
1333                        query.append(_FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_2);
1334                    }
1335                }
1336
1337                String sql = query.toString();
1338
1339                Query q = session.createQuery(sql);
1340
1341                QueryPos qPos = QueryPos.getInstance(q);
1342
1343                qPos.add(groupId);
1344
1345                if (articleId != null) {
1346                    qPos.add(articleId);
1347                }
1348
1349                qPos.add(version);
1350
1351                if (elName != null) {
1352                    qPos.add(elName);
1353                }
1354
1355                if (languageId != null) {
1356                    qPos.add(languageId);
1357                }
1358
1359                List<JournalArticleImage> list = q.list();
1360
1361                result = list;
1362
1363                JournalArticleImage journalArticleImage = null;
1364
1365                if (list.isEmpty()) {
1366                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
1367                        finderArgs, list);
1368                }
1369                else {
1370                    journalArticleImage = list.get(0);
1371
1372                    cacheResult(journalArticleImage);
1373
1374                    if ((journalArticleImage.getGroupId() != groupId) ||
1375                            (journalArticleImage.getArticleId() == null) ||
1376                            !journalArticleImage.getArticleId().equals(articleId) ||
1377                            (journalArticleImage.getVersion() != version) ||
1378                            (journalArticleImage.getElName() == null) ||
1379                            !journalArticleImage.getElName().equals(elName) ||
1380                            (journalArticleImage.getLanguageId() == null) ||
1381                            !journalArticleImage.getLanguageId()
1382                                                    .equals(languageId)) {
1383                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
1384                            finderArgs, journalArticleImage);
1385                    }
1386                }
1387
1388                return journalArticleImage;
1389            }
1390            catch (Exception e) {
1391                throw processException(e);
1392            }
1393            finally {
1394                if (result == null) {
1395                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_L,
1396                        finderArgs, new ArrayList<JournalArticleImage>());
1397                }
1398
1399                closeSession(session);
1400            }
1401        }
1402        else {
1403            if (result instanceof List<?>) {
1404                return null;
1405            }
1406            else {
1407                return (JournalArticleImage)result;
1408            }
1409        }
1410    }
1411
1412    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1413        throws SystemException {
1414        Session session = null;
1415
1416        try {
1417            session = openSession();
1418
1419            dynamicQuery.compile(session);
1420
1421            return dynamicQuery.list();
1422        }
1423        catch (Exception e) {
1424            throw processException(e);
1425        }
1426        finally {
1427            closeSession(session);
1428        }
1429    }
1430
1431    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1432        int start, int end) throws SystemException {
1433        Session session = null;
1434
1435        try {
1436            session = openSession();
1437
1438            dynamicQuery.setLimit(start, end);
1439
1440            dynamicQuery.compile(session);
1441
1442            return dynamicQuery.list();
1443        }
1444        catch (Exception e) {
1445            throw processException(e);
1446        }
1447        finally {
1448            closeSession(session);
1449        }
1450    }
1451
1452    public List<JournalArticleImage> findAll() throws SystemException {
1453        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1454    }
1455
1456    public List<JournalArticleImage> findAll(int start, int end)
1457        throws SystemException {
1458        return findAll(start, end, null);
1459    }
1460
1461    public List<JournalArticleImage> findAll(int start, int end,
1462        OrderByComparator obc) throws SystemException {
1463        Object[] finderArgs = new Object[] {
1464                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1465            };
1466
1467        List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1468                finderArgs, this);
1469
1470        if (list == null) {
1471            Session session = null;
1472
1473            try {
1474                session = openSession();
1475
1476                StringBundler query = null;
1477                String sql = null;
1478
1479                if (obc != null) {
1480                    query = new StringBundler(2 +
1481                            (obc.getOrderByFields().length * 3));
1482
1483                    query.append(_SQL_SELECT_JOURNALARTICLEIMAGE);
1484
1485                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1486
1487                    sql = query.toString();
1488                }
1489
1490                sql = _SQL_SELECT_JOURNALARTICLEIMAGE;
1491
1492                Query q = session.createQuery(sql);
1493
1494                if (obc == null) {
1495                    list = (List<JournalArticleImage>)QueryUtil.list(q,
1496                            getDialect(), start, end, false);
1497
1498                    Collections.sort(list);
1499                }
1500                else {
1501                    list = (List<JournalArticleImage>)QueryUtil.list(q,
1502                            getDialect(), start, end);
1503                }
1504            }
1505            catch (Exception e) {
1506                throw processException(e);
1507            }
1508            finally {
1509                if (list == null) {
1510                    list = new ArrayList<JournalArticleImage>();
1511                }
1512
1513                cacheResult(list);
1514
1515                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1516
1517                closeSession(session);
1518            }
1519        }
1520
1521        return list;
1522    }
1523
1524    public void removeByGroupId(long groupId) throws SystemException {
1525        for (JournalArticleImage journalArticleImage : findByGroupId(groupId)) {
1526            remove(journalArticleImage);
1527        }
1528    }
1529
1530    public void removeByTempImage(boolean tempImage) throws SystemException {
1531        for (JournalArticleImage journalArticleImage : findByTempImage(
1532                tempImage)) {
1533            remove(journalArticleImage);
1534        }
1535    }
1536
1537    public void removeByG_A_V(long groupId, String articleId, double version)
1538        throws SystemException {
1539        for (JournalArticleImage journalArticleImage : findByG_A_V(groupId,
1540                articleId, version)) {
1541            remove(journalArticleImage);
1542        }
1543    }
1544
1545    public void removeByG_A_V_E_L(long groupId, String articleId,
1546        double version, String elName, String languageId)
1547        throws NoSuchArticleImageException, SystemException {
1548        JournalArticleImage journalArticleImage = findByG_A_V_E_L(groupId,
1549                articleId, version, elName, languageId);
1550
1551        remove(journalArticleImage);
1552    }
1553
1554    public void removeAll() throws SystemException {
1555        for (JournalArticleImage journalArticleImage : findAll()) {
1556            remove(journalArticleImage);
1557        }
1558    }
1559
1560    public int countByGroupId(long groupId) throws SystemException {
1561        Object[] finderArgs = new Object[] { new Long(groupId) };
1562
1563        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
1564                finderArgs, this);
1565
1566        if (count == null) {
1567            Session session = null;
1568
1569            try {
1570                session = openSession();
1571
1572                StringBundler query = new StringBundler(2);
1573
1574                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1575
1576                query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
1577
1578                String sql = query.toString();
1579
1580                Query q = session.createQuery(sql);
1581
1582                QueryPos qPos = QueryPos.getInstance(q);
1583
1584                qPos.add(groupId);
1585
1586                count = (Long)q.uniqueResult();
1587            }
1588            catch (Exception e) {
1589                throw processException(e);
1590            }
1591            finally {
1592                if (count == null) {
1593                    count = Long.valueOf(0);
1594                }
1595
1596                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
1597                    finderArgs, count);
1598
1599                closeSession(session);
1600            }
1601        }
1602
1603        return count.intValue();
1604    }
1605
1606    public int countByTempImage(boolean tempImage) throws SystemException {
1607        Object[] finderArgs = new Object[] { Boolean.valueOf(tempImage) };
1608
1609        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_TEMPIMAGE,
1610                finderArgs, this);
1611
1612        if (count == null) {
1613            Session session = null;
1614
1615            try {
1616                session = openSession();
1617
1618                StringBundler query = new StringBundler(2);
1619
1620                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1621
1622                query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
1623
1624                String sql = query.toString();
1625
1626                Query q = session.createQuery(sql);
1627
1628                QueryPos qPos = QueryPos.getInstance(q);
1629
1630                qPos.add(tempImage);
1631
1632                count = (Long)q.uniqueResult();
1633            }
1634            catch (Exception e) {
1635                throw processException(e);
1636            }
1637            finally {
1638                if (count == null) {
1639                    count = Long.valueOf(0);
1640                }
1641
1642                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_TEMPIMAGE,
1643                    finderArgs, count);
1644
1645                closeSession(session);
1646            }
1647        }
1648
1649        return count.intValue();
1650    }
1651
1652    public int countByG_A_V(long groupId, String articleId, double version)
1653        throws SystemException {
1654        Object[] finderArgs = new Object[] {
1655                new Long(groupId),
1656                
1657                articleId, new Double(version)
1658            };
1659
1660        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_A_V,
1661                finderArgs, this);
1662
1663        if (count == null) {
1664            Session session = null;
1665
1666            try {
1667                session = openSession();
1668
1669                StringBundler query = new StringBundler(4);
1670
1671                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1672
1673                query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
1674
1675                if (articleId == null) {
1676                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
1677                }
1678                else {
1679                    if (articleId.equals(StringPool.BLANK)) {
1680                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
1681                    }
1682                    else {
1683                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
1684                    }
1685                }
1686
1687                query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
1688
1689                String sql = query.toString();
1690
1691                Query q = session.createQuery(sql);
1692
1693                QueryPos qPos = QueryPos.getInstance(q);
1694
1695                qPos.add(groupId);
1696
1697                if (articleId != null) {
1698                    qPos.add(articleId);
1699                }
1700
1701                qPos.add(version);
1702
1703                count = (Long)q.uniqueResult();
1704            }
1705            catch (Exception e) {
1706                throw processException(e);
1707            }
1708            finally {
1709                if (count == null) {
1710                    count = Long.valueOf(0);
1711                }
1712
1713                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_A_V,
1714                    finderArgs, count);
1715
1716                closeSession(session);
1717            }
1718        }
1719
1720        return count.intValue();
1721    }
1722
1723    public int countByG_A_V_E_L(long groupId, String articleId, double version,
1724        String elName, String languageId) throws SystemException {
1725        Object[] finderArgs = new Object[] {
1726                new Long(groupId),
1727                
1728                articleId, new Double(version),
1729                
1730                elName,
1731                
1732                languageId
1733            };
1734
1735        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_A_V_E_L,
1736                finderArgs, this);
1737
1738        if (count == null) {
1739            Session session = null;
1740
1741            try {
1742                session = openSession();
1743
1744                StringBundler query = new StringBundler(6);
1745
1746                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1747
1748                query.append(_FINDER_COLUMN_G_A_V_E_L_GROUPID_2);
1749
1750                if (articleId == null) {
1751                    query.append(_FINDER_COLUMN_G_A_V_E_L_ARTICLEID_1);
1752                }
1753                else {
1754                    if (articleId.equals(StringPool.BLANK)) {
1755                        query.append(_FINDER_COLUMN_G_A_V_E_L_ARTICLEID_3);
1756                    }
1757                    else {
1758                        query.append(_FINDER_COLUMN_G_A_V_E_L_ARTICLEID_2);
1759                    }
1760                }
1761
1762                query.append(_FINDER_COLUMN_G_A_V_E_L_VERSION_2);
1763
1764                if (elName == null) {
1765                    query.append(_FINDER_COLUMN_G_A_V_E_L_ELNAME_1);
1766                }
1767                else {
1768                    if (elName.equals(StringPool.BLANK)) {
1769                        query.append(_FINDER_COLUMN_G_A_V_E_L_ELNAME_3);
1770                    }
1771                    else {
1772                        query.append(_FINDER_COLUMN_G_A_V_E_L_ELNAME_2);
1773                    }
1774                }
1775
1776                if (languageId == null) {
1777                    query.append(_FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_1);
1778                }
1779                else {
1780                    if (languageId.equals(StringPool.BLANK)) {
1781                        query.append(_FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_3);
1782                    }
1783                    else {
1784                        query.append(_FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_2);
1785                    }
1786                }
1787
1788                String sql = query.toString();
1789
1790                Query q = session.createQuery(sql);
1791
1792                QueryPos qPos = QueryPos.getInstance(q);
1793
1794                qPos.add(groupId);
1795
1796                if (articleId != null) {
1797                    qPos.add(articleId);
1798                }
1799
1800                qPos.add(version);
1801
1802                if (elName != null) {
1803                    qPos.add(elName);
1804                }
1805
1806                if (languageId != null) {
1807                    qPos.add(languageId);
1808                }
1809
1810                count = (Long)q.uniqueResult();
1811            }
1812            catch (Exception e) {
1813                throw processException(e);
1814            }
1815            finally {
1816                if (count == null) {
1817                    count = Long.valueOf(0);
1818                }
1819
1820                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_A_V_E_L,
1821                    finderArgs, count);
1822
1823                closeSession(session);
1824            }
1825        }
1826
1827        return count.intValue();
1828    }
1829
1830    public int countAll() throws SystemException {
1831        Object[] finderArgs = new Object[0];
1832
1833        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1834                finderArgs, this);
1835
1836        if (count == null) {
1837            Session session = null;
1838
1839            try {
1840                session = openSession();
1841
1842                Query q = session.createQuery(_SQL_COUNT_JOURNALARTICLEIMAGE);
1843
1844                count = (Long)q.uniqueResult();
1845            }
1846            catch (Exception e) {
1847                throw processException(e);
1848            }
1849            finally {
1850                if (count == null) {
1851                    count = Long.valueOf(0);
1852                }
1853
1854                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1855                    count);
1856
1857                closeSession(session);
1858            }
1859        }
1860
1861        return count.intValue();
1862    }
1863
1864    public void afterPropertiesSet() {
1865        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1866                    com.liferay.portal.util.PropsUtil.get(
1867                        "value.object.listener.com.liferay.portlet.journal.model.JournalArticleImage")));
1868
1869        if (listenerClassNames.length > 0) {
1870            try {
1871                List<ModelListener<JournalArticleImage>> listenersList = new ArrayList<ModelListener<JournalArticleImage>>();
1872
1873                for (String listenerClassName : listenerClassNames) {
1874                    listenersList.add((ModelListener<JournalArticleImage>)Class.forName(
1875                            listenerClassName).newInstance());
1876                }
1877
1878                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1879            }
1880            catch (Exception e) {
1881                _log.error(e);
1882            }
1883        }
1884    }
1885
1886    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticlePersistence")
1887    protected com.liferay.portlet.journal.service.persistence.JournalArticlePersistence journalArticlePersistence;
1888    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticleImagePersistence")
1889    protected com.liferay.portlet.journal.service.persistence.JournalArticleImagePersistence journalArticleImagePersistence;
1890    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticleResourcePersistence")
1891    protected com.liferay.portlet.journal.service.persistence.JournalArticleResourcePersistence journalArticleResourcePersistence;
1892    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence")
1893    protected com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence journalContentSearchPersistence;
1894    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalFeedPersistence")
1895    protected com.liferay.portlet.journal.service.persistence.JournalFeedPersistence journalFeedPersistence;
1896    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalStructurePersistence")
1897    protected com.liferay.portlet.journal.service.persistence.JournalStructurePersistence journalStructurePersistence;
1898    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalTemplatePersistence")
1899    protected com.liferay.portlet.journal.service.persistence.JournalTemplatePersistence journalTemplatePersistence;
1900    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence")
1901    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
1902    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
1903    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
1904    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
1905    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1906    private static final String _SQL_SELECT_JOURNALARTICLEIMAGE = "SELECT journalArticleImage FROM JournalArticleImage journalArticleImage";
1907    private static final String _SQL_SELECT_JOURNALARTICLEIMAGE_WHERE = "SELECT journalArticleImage FROM JournalArticleImage journalArticleImage WHERE ";
1908    private static final String _SQL_COUNT_JOURNALARTICLEIMAGE = "SELECT COUNT(journalArticleImage) FROM JournalArticleImage journalArticleImage";
1909    private static final String _SQL_COUNT_JOURNALARTICLEIMAGE_WHERE = "SELECT COUNT(journalArticleImage) FROM JournalArticleImage journalArticleImage WHERE ";
1910    private static final String _FINDER_COLUMN_GROUPID_GROUPID_2 = "journalArticleImage.groupId = ?";
1911    private static final String _FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2 = "journalArticleImage.tempImage = ?";
1912    private static final String _FINDER_COLUMN_G_A_V_GROUPID_2 = "journalArticleImage.groupId = ? AND ";
1913    private static final String _FINDER_COLUMN_G_A_V_ARTICLEID_1 = "journalArticleImage.articleId IS NULL AND ";
1914    private static final String _FINDER_COLUMN_G_A_V_ARTICLEID_2 = "journalArticleImage.articleId = ? AND ";
1915    private static final String _FINDER_COLUMN_G_A_V_ARTICLEID_3 = "(journalArticleImage.articleId IS NULL OR journalArticleImage.articleId = ?) AND ";
1916    private static final String _FINDER_COLUMN_G_A_V_VERSION_2 = "journalArticleImage.version = ?";
1917    private static final String _FINDER_COLUMN_G_A_V_E_L_GROUPID_2 = "journalArticleImage.groupId = ? AND ";
1918    private static final String _FINDER_COLUMN_G_A_V_E_L_ARTICLEID_1 = "journalArticleImage.articleId IS NULL AND ";
1919    private static final String _FINDER_COLUMN_G_A_V_E_L_ARTICLEID_2 = "journalArticleImage.articleId = ? AND ";
1920    private static final String _FINDER_COLUMN_G_A_V_E_L_ARTICLEID_3 = "(journalArticleImage.articleId IS NULL OR journalArticleImage.articleId = ?) AND ";
1921    private static final String _FINDER_COLUMN_G_A_V_E_L_VERSION_2 = "journalArticleImage.version = ? AND ";
1922    private static final String _FINDER_COLUMN_G_A_V_E_L_ELNAME_1 = "journalArticleImage.elName IS NULL AND ";
1923    private static final String _FINDER_COLUMN_G_A_V_E_L_ELNAME_2 = "journalArticleImage.elName = ? AND ";
1924    private static final String _FINDER_COLUMN_G_A_V_E_L_ELNAME_3 = "(journalArticleImage.elName IS NULL OR journalArticleImage.elName = ?) AND ";
1925    private static final String _FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_1 = "journalArticleImage.languageId IS NULL";
1926    private static final String _FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_2 = "journalArticleImage.languageId = ?";
1927    private static final String _FINDER_COLUMN_G_A_V_E_L_LANGUAGEID_3 = "(journalArticleImage.languageId IS NULL OR journalArticleImage.languageId = ?)";
1928    private static final String _ORDER_BY_ENTITY_ALIAS = "journalArticleImage.";
1929    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No JournalArticleImage exists with the primary key ";
1930    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No JournalArticleImage exists with the key {";
1931    private static Log _log = LogFactoryUtil.getLog(JournalArticleImagePersistenceImpl.class);
1932}