1
19
20 package com.liferay.portlet.journal.service.persistence;
21
22 import com.liferay.portal.SystemException;
23 import com.liferay.portal.kernel.annotation.BeanReference;
24 import com.liferay.portal.kernel.cache.CacheRegistry;
25 import com.liferay.portal.kernel.dao.orm.DynamicQuery;
26 import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
27 import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
28 import com.liferay.portal.kernel.dao.orm.FinderPath;
29 import com.liferay.portal.kernel.dao.orm.Query;
30 import com.liferay.portal.kernel.dao.orm.QueryPos;
31 import com.liferay.portal.kernel.dao.orm.QueryUtil;
32 import com.liferay.portal.kernel.dao.orm.Session;
33 import com.liferay.portal.kernel.log.Log;
34 import com.liferay.portal.kernel.log.LogFactoryUtil;
35 import com.liferay.portal.kernel.util.GetterUtil;
36 import com.liferay.portal.kernel.util.OrderByComparator;
37 import com.liferay.portal.kernel.util.StringPool;
38 import com.liferay.portal.kernel.util.StringUtil;
39 import com.liferay.portal.model.ModelListener;
40 import com.liferay.portal.service.persistence.BatchSessionUtil;
41 import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
42
43 import com.liferay.portlet.journal.NoSuchArticleResourceException;
44 import com.liferay.portlet.journal.model.JournalArticleResource;
45 import com.liferay.portlet.journal.model.impl.JournalArticleResourceImpl;
46 import com.liferay.portlet.journal.model.impl.JournalArticleResourceModelImpl;
47
48 import java.util.ArrayList;
49 import java.util.Collections;
50 import java.util.List;
51
52
58 public class JournalArticleResourcePersistenceImpl extends BasePersistenceImpl
59 implements JournalArticleResourcePersistence {
60 public static final String FINDER_CLASS_NAME_ENTITY = JournalArticleResourceImpl.class.getName();
61 public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
62 ".List";
63 public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
64 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
65 FINDER_CLASS_NAME_LIST, "findByGroupId",
66 new String[] { Long.class.getName() });
67 public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
68 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
69 FINDER_CLASS_NAME_LIST, "findByGroupId",
70 new String[] {
71 Long.class.getName(),
72
73 "java.lang.Integer", "java.lang.Integer",
74 "com.liferay.portal.kernel.util.OrderByComparator"
75 });
76 public static final FinderPath FINDER_PATH_COUNT_BY_GROUPID = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
77 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
78 FINDER_CLASS_NAME_LIST, "countByGroupId",
79 new String[] { Long.class.getName() });
80 public static final FinderPath FINDER_PATH_FETCH_BY_G_A = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
81 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
82 FINDER_CLASS_NAME_ENTITY, "fetchByG_A",
83 new String[] { Long.class.getName(), String.class.getName() });
84 public static final FinderPath FINDER_PATH_COUNT_BY_G_A = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
85 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
86 FINDER_CLASS_NAME_LIST, "countByG_A",
87 new String[] { Long.class.getName(), String.class.getName() });
88 public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
89 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
90 FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
91 public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
92 JournalArticleResourceModelImpl.FINDER_CACHE_ENABLED,
93 FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
94
95 public void cacheResult(JournalArticleResource journalArticleResource) {
96 EntityCacheUtil.putResult(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
97 JournalArticleResourceImpl.class,
98 journalArticleResource.getPrimaryKey(), journalArticleResource);
99
100 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A,
101 new Object[] {
102 new Long(journalArticleResource.getGroupId()),
103
104 journalArticleResource.getArticleId()
105 }, journalArticleResource);
106 }
107
108 public void cacheResult(
109 List<JournalArticleResource> journalArticleResources) {
110 for (JournalArticleResource journalArticleResource : journalArticleResources) {
111 if (EntityCacheUtil.getResult(
112 JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
113 JournalArticleResourceImpl.class,
114 journalArticleResource.getPrimaryKey(), this) == null) {
115 cacheResult(journalArticleResource);
116 }
117 }
118 }
119
120 public void clearCache() {
121 CacheRegistry.clear(JournalArticleResourceImpl.class.getName());
122 EntityCacheUtil.clearCache(JournalArticleResourceImpl.class.getName());
123 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
124 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
125 }
126
127 public JournalArticleResource create(long resourcePrimKey) {
128 JournalArticleResource journalArticleResource = new JournalArticleResourceImpl();
129
130 journalArticleResource.setNew(true);
131 journalArticleResource.setPrimaryKey(resourcePrimKey);
132
133 return journalArticleResource;
134 }
135
136 public JournalArticleResource remove(long resourcePrimKey)
137 throws NoSuchArticleResourceException, SystemException {
138 Session session = null;
139
140 try {
141 session = openSession();
142
143 JournalArticleResource journalArticleResource = (JournalArticleResource)session.get(JournalArticleResourceImpl.class,
144 new Long(resourcePrimKey));
145
146 if (journalArticleResource == null) {
147 if (_log.isWarnEnabled()) {
148 _log.warn(
149 "No JournalArticleResource exists with the primary key " +
150 resourcePrimKey);
151 }
152
153 throw new NoSuchArticleResourceException(
154 "No JournalArticleResource exists with the primary key " +
155 resourcePrimKey);
156 }
157
158 return remove(journalArticleResource);
159 }
160 catch (NoSuchArticleResourceException nsee) {
161 throw nsee;
162 }
163 catch (Exception e) {
164 throw processException(e);
165 }
166 finally {
167 closeSession(session);
168 }
169 }
170
171 public JournalArticleResource remove(
172 JournalArticleResource journalArticleResource)
173 throws SystemException {
174 for (ModelListener<JournalArticleResource> listener : listeners) {
175 listener.onBeforeRemove(journalArticleResource);
176 }
177
178 journalArticleResource = removeImpl(journalArticleResource);
179
180 for (ModelListener<JournalArticleResource> listener : listeners) {
181 listener.onAfterRemove(journalArticleResource);
182 }
183
184 return journalArticleResource;
185 }
186
187 protected JournalArticleResource removeImpl(
188 JournalArticleResource journalArticleResource)
189 throws SystemException {
190 Session session = null;
191
192 try {
193 session = openSession();
194
195 if (journalArticleResource.isCachedModel() ||
196 BatchSessionUtil.isEnabled()) {
197 Object staleObject = session.get(JournalArticleResourceImpl.class,
198 journalArticleResource.getPrimaryKeyObj());
199
200 if (staleObject != null) {
201 session.evict(staleObject);
202 }
203 }
204
205 session.delete(journalArticleResource);
206
207 session.flush();
208 }
209 catch (Exception e) {
210 throw processException(e);
211 }
212 finally {
213 closeSession(session);
214 }
215
216 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
217
218 JournalArticleResourceModelImpl journalArticleResourceModelImpl = (JournalArticleResourceModelImpl)journalArticleResource;
219
220 FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_A,
221 new Object[] {
222 new Long(journalArticleResourceModelImpl.getOriginalGroupId()),
223
224 journalArticleResourceModelImpl.getOriginalArticleId()
225 });
226
227 EntityCacheUtil.removeResult(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
228 JournalArticleResourceImpl.class,
229 journalArticleResource.getPrimaryKey());
230
231 return journalArticleResource;
232 }
233
234
237 public JournalArticleResource update(
238 JournalArticleResource journalArticleResource)
239 throws SystemException {
240 if (_log.isWarnEnabled()) {
241 _log.warn(
242 "Using the deprecated update(JournalArticleResource journalArticleResource) method. Use update(JournalArticleResource journalArticleResource, boolean merge) instead.");
243 }
244
245 return update(journalArticleResource, false);
246 }
247
248
261 public JournalArticleResource update(
262 JournalArticleResource journalArticleResource, boolean merge)
263 throws SystemException {
264 boolean isNew = journalArticleResource.isNew();
265
266 for (ModelListener<JournalArticleResource> listener : listeners) {
267 if (isNew) {
268 listener.onBeforeCreate(journalArticleResource);
269 }
270 else {
271 listener.onBeforeUpdate(journalArticleResource);
272 }
273 }
274
275 journalArticleResource = updateImpl(journalArticleResource, merge);
276
277 for (ModelListener<JournalArticleResource> listener : listeners) {
278 if (isNew) {
279 listener.onAfterCreate(journalArticleResource);
280 }
281 else {
282 listener.onAfterUpdate(journalArticleResource);
283 }
284 }
285
286 return journalArticleResource;
287 }
288
289 public JournalArticleResource updateImpl(
290 com.liferay.portlet.journal.model.JournalArticleResource journalArticleResource,
291 boolean merge) throws SystemException {
292 boolean isNew = journalArticleResource.isNew();
293
294 JournalArticleResourceModelImpl journalArticleResourceModelImpl = (JournalArticleResourceModelImpl)journalArticleResource;
295
296 Session session = null;
297
298 try {
299 session = openSession();
300
301 BatchSessionUtil.update(session, journalArticleResource, merge);
302
303 journalArticleResource.setNew(false);
304 }
305 catch (Exception e) {
306 throw processException(e);
307 }
308 finally {
309 closeSession(session);
310 }
311
312 FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
313
314 EntityCacheUtil.putResult(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
315 JournalArticleResourceImpl.class,
316 journalArticleResource.getPrimaryKey(), journalArticleResource);
317
318 if (!isNew &&
319 ((journalArticleResource.getGroupId() != journalArticleResourceModelImpl.getOriginalGroupId()) ||
320 !journalArticleResource.getArticleId()
321 .equals(journalArticleResourceModelImpl.getOriginalArticleId()))) {
322 FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_A,
323 new Object[] {
324 new Long(journalArticleResourceModelImpl.getOriginalGroupId()),
325
326 journalArticleResourceModelImpl.getOriginalArticleId()
327 });
328 }
329
330 if (isNew ||
331 ((journalArticleResource.getGroupId() != journalArticleResourceModelImpl.getOriginalGroupId()) ||
332 !journalArticleResource.getArticleId()
333 .equals(journalArticleResourceModelImpl.getOriginalArticleId()))) {
334 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A,
335 new Object[] {
336 new Long(journalArticleResource.getGroupId()),
337
338 journalArticleResource.getArticleId()
339 }, journalArticleResource);
340 }
341
342 return journalArticleResource;
343 }
344
345 public JournalArticleResource findByPrimaryKey(long resourcePrimKey)
346 throws NoSuchArticleResourceException, SystemException {
347 JournalArticleResource journalArticleResource = fetchByPrimaryKey(resourcePrimKey);
348
349 if (journalArticleResource == null) {
350 if (_log.isWarnEnabled()) {
351 _log.warn(
352 "No JournalArticleResource exists with the primary key " +
353 resourcePrimKey);
354 }
355
356 throw new NoSuchArticleResourceException(
357 "No JournalArticleResource exists with the primary key " +
358 resourcePrimKey);
359 }
360
361 return journalArticleResource;
362 }
363
364 public JournalArticleResource fetchByPrimaryKey(long resourcePrimKey)
365 throws SystemException {
366 JournalArticleResource journalArticleResource = (JournalArticleResource)EntityCacheUtil.getResult(JournalArticleResourceModelImpl.ENTITY_CACHE_ENABLED,
367 JournalArticleResourceImpl.class, resourcePrimKey, this);
368
369 if (journalArticleResource == null) {
370 Session session = null;
371
372 try {
373 session = openSession();
374
375 journalArticleResource = (JournalArticleResource)session.get(JournalArticleResourceImpl.class,
376 new Long(resourcePrimKey));
377 }
378 catch (Exception e) {
379 throw processException(e);
380 }
381 finally {
382 if (journalArticleResource != null) {
383 cacheResult(journalArticleResource);
384 }
385
386 closeSession(session);
387 }
388 }
389
390 return journalArticleResource;
391 }
392
393 public List<JournalArticleResource> findByGroupId(long groupId)
394 throws SystemException {
395 Object[] finderArgs = new Object[] { new Long(groupId) };
396
397 List<JournalArticleResource> list = (List<JournalArticleResource>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
398 finderArgs, this);
399
400 if (list == null) {
401 Session session = null;
402
403 try {
404 session = openSession();
405
406 StringBuilder query = new StringBuilder();
407
408 query.append(
409 "FROM com.liferay.portlet.journal.model.JournalArticleResource WHERE ");
410
411 query.append("groupId = ?");
412
413 query.append(" ");
414
415 Query q = session.createQuery(query.toString());
416
417 QueryPos qPos = QueryPos.getInstance(q);
418
419 qPos.add(groupId);
420
421 list = q.list();
422 }
423 catch (Exception e) {
424 throw processException(e);
425 }
426 finally {
427 if (list == null) {
428 list = new ArrayList<JournalArticleResource>();
429 }
430
431 cacheResult(list);
432
433 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
434 finderArgs, list);
435
436 closeSession(session);
437 }
438 }
439
440 return list;
441 }
442
443 public List<JournalArticleResource> findByGroupId(long groupId, int start,
444 int end) throws SystemException {
445 return findByGroupId(groupId, start, end, null);
446 }
447
448 public List<JournalArticleResource> findByGroupId(long groupId, int start,
449 int end, OrderByComparator obc) throws SystemException {
450 Object[] finderArgs = new Object[] {
451 new Long(groupId),
452
453 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
454 };
455
456 List<JournalArticleResource> list = (List<JournalArticleResource>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
457 finderArgs, this);
458
459 if (list == null) {
460 Session session = null;
461
462 try {
463 session = openSession();
464
465 StringBuilder query = new StringBuilder();
466
467 query.append(
468 "FROM com.liferay.portlet.journal.model.JournalArticleResource WHERE ");
469
470 query.append("groupId = ?");
471
472 query.append(" ");
473
474 if (obc != null) {
475 query.append("ORDER BY ");
476 query.append(obc.getOrderBy());
477 }
478
479 Query q = session.createQuery(query.toString());
480
481 QueryPos qPos = QueryPos.getInstance(q);
482
483 qPos.add(groupId);
484
485 list = (List<JournalArticleResource>)QueryUtil.list(q,
486 getDialect(), start, end);
487 }
488 catch (Exception e) {
489 throw processException(e);
490 }
491 finally {
492 if (list == null) {
493 list = new ArrayList<JournalArticleResource>();
494 }
495
496 cacheResult(list);
497
498 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
499 finderArgs, list);
500
501 closeSession(session);
502 }
503 }
504
505 return list;
506 }
507
508 public JournalArticleResource findByGroupId_First(long groupId,
509 OrderByComparator obc)
510 throws NoSuchArticleResourceException, SystemException {
511 List<JournalArticleResource> list = findByGroupId(groupId, 0, 1, obc);
512
513 if (list.isEmpty()) {
514 StringBuilder msg = new StringBuilder();
515
516 msg.append("No JournalArticleResource exists with the key {");
517
518 msg.append("groupId=" + groupId);
519
520 msg.append(StringPool.CLOSE_CURLY_BRACE);
521
522 throw new NoSuchArticleResourceException(msg.toString());
523 }
524 else {
525 return list.get(0);
526 }
527 }
528
529 public JournalArticleResource findByGroupId_Last(long groupId,
530 OrderByComparator obc)
531 throws NoSuchArticleResourceException, SystemException {
532 int count = countByGroupId(groupId);
533
534 List<JournalArticleResource> list = findByGroupId(groupId, count - 1,
535 count, obc);
536
537 if (list.isEmpty()) {
538 StringBuilder msg = new StringBuilder();
539
540 msg.append("No JournalArticleResource exists with the key {");
541
542 msg.append("groupId=" + groupId);
543
544 msg.append(StringPool.CLOSE_CURLY_BRACE);
545
546 throw new NoSuchArticleResourceException(msg.toString());
547 }
548 else {
549 return list.get(0);
550 }
551 }
552
553 public JournalArticleResource[] findByGroupId_PrevAndNext(
554 long resourcePrimKey, long groupId, OrderByComparator obc)
555 throws NoSuchArticleResourceException, SystemException {
556 JournalArticleResource journalArticleResource = findByPrimaryKey(resourcePrimKey);
557
558 int count = countByGroupId(groupId);
559
560 Session session = null;
561
562 try {
563 session = openSession();
564
565 StringBuilder query = new StringBuilder();
566
567 query.append(
568 "FROM com.liferay.portlet.journal.model.JournalArticleResource WHERE ");
569
570 query.append("groupId = ?");
571
572 query.append(" ");
573
574 if (obc != null) {
575 query.append("ORDER BY ");
576 query.append(obc.getOrderBy());
577 }
578
579 Query q = session.createQuery(query.toString());
580
581 QueryPos qPos = QueryPos.getInstance(q);
582
583 qPos.add(groupId);
584
585 Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
586 journalArticleResource);
587
588 JournalArticleResource[] array = new JournalArticleResourceImpl[3];
589
590 array[0] = (JournalArticleResource)objArray[0];
591 array[1] = (JournalArticleResource)objArray[1];
592 array[2] = (JournalArticleResource)objArray[2];
593
594 return array;
595 }
596 catch (Exception e) {
597 throw processException(e);
598 }
599 finally {
600 closeSession(session);
601 }
602 }
603
604 public JournalArticleResource findByG_A(long groupId, String articleId)
605 throws NoSuchArticleResourceException, SystemException {
606 JournalArticleResource journalArticleResource = fetchByG_A(groupId,
607 articleId);
608
609 if (journalArticleResource == null) {
610 StringBuilder msg = new StringBuilder();
611
612 msg.append("No JournalArticleResource exists with the key {");
613
614 msg.append("groupId=" + groupId);
615
616 msg.append(", ");
617 msg.append("articleId=" + articleId);
618
619 msg.append(StringPool.CLOSE_CURLY_BRACE);
620
621 if (_log.isWarnEnabled()) {
622 _log.warn(msg.toString());
623 }
624
625 throw new NoSuchArticleResourceException(msg.toString());
626 }
627
628 return journalArticleResource;
629 }
630
631 public JournalArticleResource fetchByG_A(long groupId, String articleId)
632 throws SystemException {
633 return fetchByG_A(groupId, articleId, true);
634 }
635
636 public JournalArticleResource fetchByG_A(long groupId, String articleId,
637 boolean retrieveFromCache) throws SystemException {
638 Object[] finderArgs = new Object[] { new Long(groupId), articleId };
639
640 Object result = null;
641
642 if (retrieveFromCache) {
643 result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_A,
644 finderArgs, this);
645 }
646
647 if (result == null) {
648 Session session = null;
649
650 try {
651 session = openSession();
652
653 StringBuilder query = new StringBuilder();
654
655 query.append(
656 "FROM com.liferay.portlet.journal.model.JournalArticleResource WHERE ");
657
658 query.append("groupId = ?");
659
660 query.append(" AND ");
661
662 if (articleId == null) {
663 query.append("articleId IS NULL");
664 }
665 else {
666 query.append("articleId = ?");
667 }
668
669 query.append(" ");
670
671 Query q = session.createQuery(query.toString());
672
673 QueryPos qPos = QueryPos.getInstance(q);
674
675 qPos.add(groupId);
676
677 if (articleId != null) {
678 qPos.add(articleId);
679 }
680
681 List<JournalArticleResource> list = q.list();
682
683 result = list;
684
685 JournalArticleResource journalArticleResource = null;
686
687 if (list.isEmpty()) {
688 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A,
689 finderArgs, list);
690 }
691 else {
692 journalArticleResource = list.get(0);
693
694 cacheResult(journalArticleResource);
695
696 if ((journalArticleResource.getGroupId() != groupId) ||
697 (journalArticleResource.getArticleId() == null) ||
698 !journalArticleResource.getArticleId()
699 .equals(articleId)) {
700 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A,
701 finderArgs, list);
702 }
703 }
704
705 return journalArticleResource;
706 }
707 catch (Exception e) {
708 throw processException(e);
709 }
710 finally {
711 if (result == null) {
712 FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A,
713 finderArgs, new ArrayList<JournalArticleResource>());
714 }
715
716 closeSession(session);
717 }
718 }
719 else {
720 if (result instanceof List) {
721 return null;
722 }
723 else {
724 return (JournalArticleResource)result;
725 }
726 }
727 }
728
729 public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
730 throws SystemException {
731 Session session = null;
732
733 try {
734 session = openSession();
735
736 dynamicQuery.compile(session);
737
738 return dynamicQuery.list();
739 }
740 catch (Exception e) {
741 throw processException(e);
742 }
743 finally {
744 closeSession(session);
745 }
746 }
747
748 public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
749 int start, int end) throws SystemException {
750 Session session = null;
751
752 try {
753 session = openSession();
754
755 dynamicQuery.setLimit(start, end);
756
757 dynamicQuery.compile(session);
758
759 return dynamicQuery.list();
760 }
761 catch (Exception e) {
762 throw processException(e);
763 }
764 finally {
765 closeSession(session);
766 }
767 }
768
769 public List<JournalArticleResource> findAll() throws SystemException {
770 return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
771 }
772
773 public List<JournalArticleResource> findAll(int start, int end)
774 throws SystemException {
775 return findAll(start, end, null);
776 }
777
778 public List<JournalArticleResource> findAll(int start, int end,
779 OrderByComparator obc) throws SystemException {
780 Object[] finderArgs = new Object[] {
781 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
782 };
783
784 List<JournalArticleResource> list = (List<JournalArticleResource>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
785 finderArgs, this);
786
787 if (list == null) {
788 Session session = null;
789
790 try {
791 session = openSession();
792
793 StringBuilder query = new StringBuilder();
794
795 query.append(
796 "FROM com.liferay.portlet.journal.model.JournalArticleResource ");
797
798 if (obc != null) {
799 query.append("ORDER BY ");
800 query.append(obc.getOrderBy());
801 }
802
803 Query q = session.createQuery(query.toString());
804
805 if (obc == null) {
806 list = (List<JournalArticleResource>)QueryUtil.list(q,
807 getDialect(), start, end, false);
808
809 Collections.sort(list);
810 }
811 else {
812 list = (List<JournalArticleResource>)QueryUtil.list(q,
813 getDialect(), start, end);
814 }
815 }
816 catch (Exception e) {
817 throw processException(e);
818 }
819 finally {
820 if (list == null) {
821 list = new ArrayList<JournalArticleResource>();
822 }
823
824 cacheResult(list);
825
826 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
827
828 closeSession(session);
829 }
830 }
831
832 return list;
833 }
834
835 public void removeByGroupId(long groupId) throws SystemException {
836 for (JournalArticleResource journalArticleResource : findByGroupId(
837 groupId)) {
838 remove(journalArticleResource);
839 }
840 }
841
842 public void removeByG_A(long groupId, String articleId)
843 throws NoSuchArticleResourceException, SystemException {
844 JournalArticleResource journalArticleResource = findByG_A(groupId,
845 articleId);
846
847 remove(journalArticleResource);
848 }
849
850 public void removeAll() throws SystemException {
851 for (JournalArticleResource journalArticleResource : findAll()) {
852 remove(journalArticleResource);
853 }
854 }
855
856 public int countByGroupId(long groupId) throws SystemException {
857 Object[] finderArgs = new Object[] { new Long(groupId) };
858
859 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
860 finderArgs, this);
861
862 if (count == null) {
863 Session session = null;
864
865 try {
866 session = openSession();
867
868 StringBuilder query = new StringBuilder();
869
870 query.append("SELECT COUNT(*) ");
871 query.append(
872 "FROM com.liferay.portlet.journal.model.JournalArticleResource WHERE ");
873
874 query.append("groupId = ?");
875
876 query.append(" ");
877
878 Query q = session.createQuery(query.toString());
879
880 QueryPos qPos = QueryPos.getInstance(q);
881
882 qPos.add(groupId);
883
884 count = (Long)q.uniqueResult();
885 }
886 catch (Exception e) {
887 throw processException(e);
888 }
889 finally {
890 if (count == null) {
891 count = Long.valueOf(0);
892 }
893
894 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
895 finderArgs, count);
896
897 closeSession(session);
898 }
899 }
900
901 return count.intValue();
902 }
903
904 public int countByG_A(long groupId, String articleId)
905 throws SystemException {
906 Object[] finderArgs = new Object[] { new Long(groupId), articleId };
907
908 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_A,
909 finderArgs, this);
910
911 if (count == null) {
912 Session session = null;
913
914 try {
915 session = openSession();
916
917 StringBuilder query = new StringBuilder();
918
919 query.append("SELECT COUNT(*) ");
920 query.append(
921 "FROM com.liferay.portlet.journal.model.JournalArticleResource WHERE ");
922
923 query.append("groupId = ?");
924
925 query.append(" AND ");
926
927 if (articleId == null) {
928 query.append("articleId IS NULL");
929 }
930 else {
931 query.append("articleId = ?");
932 }
933
934 query.append(" ");
935
936 Query q = session.createQuery(query.toString());
937
938 QueryPos qPos = QueryPos.getInstance(q);
939
940 qPos.add(groupId);
941
942 if (articleId != null) {
943 qPos.add(articleId);
944 }
945
946 count = (Long)q.uniqueResult();
947 }
948 catch (Exception e) {
949 throw processException(e);
950 }
951 finally {
952 if (count == null) {
953 count = Long.valueOf(0);
954 }
955
956 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_A, finderArgs,
957 count);
958
959 closeSession(session);
960 }
961 }
962
963 return count.intValue();
964 }
965
966 public int countAll() throws SystemException {
967 Object[] finderArgs = new Object[0];
968
969 Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
970 finderArgs, this);
971
972 if (count == null) {
973 Session session = null;
974
975 try {
976 session = openSession();
977
978 Query q = session.createQuery(
979 "SELECT COUNT(*) FROM com.liferay.portlet.journal.model.JournalArticleResource");
980
981 count = (Long)q.uniqueResult();
982 }
983 catch (Exception e) {
984 throw processException(e);
985 }
986 finally {
987 if (count == null) {
988 count = Long.valueOf(0);
989 }
990
991 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
992 count);
993
994 closeSession(session);
995 }
996 }
997
998 return count.intValue();
999 }
1000
1001 public void afterPropertiesSet() {
1002 String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1003 com.liferay.portal.util.PropsUtil.get(
1004 "value.object.listener.com.liferay.portlet.journal.model.JournalArticleResource")));
1005
1006 if (listenerClassNames.length > 0) {
1007 try {
1008 List<ModelListener<JournalArticleResource>> listenersList = new ArrayList<ModelListener<JournalArticleResource>>();
1009
1010 for (String listenerClassName : listenerClassNames) {
1011 listenersList.add((ModelListener<JournalArticleResource>)Class.forName(
1012 listenerClassName).newInstance());
1013 }
1014
1015 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1016 }
1017 catch (Exception e) {
1018 _log.error(e);
1019 }
1020 }
1021 }
1022
1023 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticlePersistence.impl")
1024 protected com.liferay.portlet.journal.service.persistence.JournalArticlePersistence journalArticlePersistence;
1025 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticleImagePersistence.impl")
1026 protected com.liferay.portlet.journal.service.persistence.JournalArticleImagePersistence journalArticleImagePersistence;
1027 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticleResourcePersistence.impl")
1028 protected com.liferay.portlet.journal.service.persistence.JournalArticleResourcePersistence journalArticleResourcePersistence;
1029 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence.impl")
1030 protected com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence journalContentSearchPersistence;
1031 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalFeedPersistence.impl")
1032 protected com.liferay.portlet.journal.service.persistence.JournalFeedPersistence journalFeedPersistence;
1033 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalStructurePersistence.impl")
1034 protected com.liferay.portlet.journal.service.persistence.JournalStructurePersistence journalStructurePersistence;
1035 @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalTemplatePersistence.impl")
1036 protected com.liferay.portlet.journal.service.persistence.JournalTemplatePersistence journalTemplatePersistence;
1037 private static Log _log = LogFactoryUtil.getLog(JournalArticleResourcePersistenceImpl.class);
1038}