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