001: /**
002: * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
003: *
004: * Permission is hereby granted, free of charge, to any person obtaining a copy
005: * of this software and associated documentation files (the "Software"), to deal
006: * in the Software without restriction, including without limitation the rights
007: * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
008: * copies of the Software, and to permit persons to whom the Software is
009: * furnished to do so, subject to the following conditions:
010: *
011: * The above copyright notice and this permission notice shall be included in
012: * all copies or substantial portions of the Software.
013: *
014: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
015: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
016: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
017: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
018: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
019: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
020: * SOFTWARE.
021: */package com.liferay.portal.service.persistence;
022:
023: import com.liferay.portal.NoSuchResourceException;
024: import com.liferay.portal.SystemException;
025: import com.liferay.portal.kernel.dao.DynamicQuery;
026: import com.liferay.portal.kernel.dao.DynamicQueryInitializer;
027: import com.liferay.portal.kernel.util.GetterUtil;
028: import com.liferay.portal.kernel.util.OrderByComparator;
029: import com.liferay.portal.kernel.util.StringMaker;
030: import com.liferay.portal.kernel.util.StringPool;
031: import com.liferay.portal.kernel.util.Validator;
032: import com.liferay.portal.model.ModelListener;
033: import com.liferay.portal.model.Resource;
034: import com.liferay.portal.model.impl.ResourceImpl;
035: import com.liferay.portal.model.impl.ResourceModelImpl;
036: import com.liferay.portal.spring.hibernate.FinderCache;
037: import com.liferay.portal.spring.hibernate.HibernateUtil;
038: import com.liferay.portal.util.PropsUtil;
039:
040: import com.liferay.util.dao.hibernate.QueryUtil;
041:
042: import org.apache.commons.logging.Log;
043: import org.apache.commons.logging.LogFactory;
044:
045: import org.hibernate.Query;
046: import org.hibernate.Session;
047:
048: import java.util.Collections;
049: import java.util.Iterator;
050: import java.util.List;
051:
052: /**
053: * <a href="ResourcePersistenceImpl.java.html"><b><i>View Source</i></b></a>
054: *
055: * @author Brian Wing Shun Chan
056: *
057: */
058: public class ResourcePersistenceImpl extends BasePersistence implements
059: ResourcePersistence {
060: public Resource create(long resourceId) {
061: Resource resource = new ResourceImpl();
062:
063: resource.setNew(true);
064: resource.setPrimaryKey(resourceId);
065:
066: return resource;
067: }
068:
069: public Resource remove(long resourceId)
070: throws NoSuchResourceException, SystemException {
071: Session session = null;
072:
073: try {
074: session = openSession();
075:
076: Resource resource = (Resource) session.get(
077: ResourceImpl.class, new Long(resourceId));
078:
079: if (resource == null) {
080: if (_log.isWarnEnabled()) {
081: _log
082: .warn("No Resource exists with the primary key "
083: + resourceId);
084: }
085:
086: throw new NoSuchResourceException(
087: "No Resource exists with the primary key "
088: + resourceId);
089: }
090:
091: return remove(resource);
092: } catch (NoSuchResourceException nsee) {
093: throw nsee;
094: } catch (Exception e) {
095: throw HibernateUtil.processException(e);
096: } finally {
097: closeSession(session);
098: }
099: }
100:
101: public Resource remove(Resource resource) throws SystemException {
102: ModelListener listener = _getListener();
103:
104: if (listener != null) {
105: listener.onBeforeRemove(resource);
106: }
107:
108: resource = removeImpl(resource);
109:
110: if (listener != null) {
111: listener.onAfterRemove(resource);
112: }
113:
114: return resource;
115: }
116:
117: protected Resource removeImpl(Resource resource)
118: throws SystemException {
119: Session session = null;
120:
121: try {
122: session = openSession();
123:
124: session.delete(resource);
125:
126: session.flush();
127:
128: return resource;
129: } catch (Exception e) {
130: throw HibernateUtil.processException(e);
131: } finally {
132: closeSession(session);
133:
134: FinderCache.clearCache(Resource.class.getName());
135: }
136: }
137:
138: public Resource update(Resource resource) throws SystemException {
139: return update(resource, false);
140: }
141:
142: public Resource update(Resource resource, boolean merge)
143: throws SystemException {
144: ModelListener listener = _getListener();
145:
146: boolean isNew = resource.isNew();
147:
148: if (listener != null) {
149: if (isNew) {
150: listener.onBeforeCreate(resource);
151: } else {
152: listener.onBeforeUpdate(resource);
153: }
154: }
155:
156: resource = updateImpl(resource, merge);
157:
158: if (listener != null) {
159: if (isNew) {
160: listener.onAfterCreate(resource);
161: } else {
162: listener.onAfterUpdate(resource);
163: }
164: }
165:
166: return resource;
167: }
168:
169: public Resource updateImpl(
170: com.liferay.portal.model.Resource resource, boolean merge)
171: throws SystemException {
172: Session session = null;
173:
174: try {
175: session = openSession();
176:
177: if (merge) {
178: session.merge(resource);
179: } else {
180: if (resource.isNew()) {
181: session.save(resource);
182: }
183: }
184:
185: session.flush();
186:
187: resource.setNew(false);
188:
189: return resource;
190: } catch (Exception e) {
191: throw HibernateUtil.processException(e);
192: } finally {
193: closeSession(session);
194:
195: FinderCache.clearCache(Resource.class.getName());
196: }
197: }
198:
199: public Resource findByPrimaryKey(long resourceId)
200: throws NoSuchResourceException, SystemException {
201: Resource resource = fetchByPrimaryKey(resourceId);
202:
203: if (resource == null) {
204: if (_log.isWarnEnabled()) {
205: _log.warn("No Resource exists with the primary key "
206: + resourceId);
207: }
208:
209: throw new NoSuchResourceException(
210: "No Resource exists with the primary key "
211: + resourceId);
212: }
213:
214: return resource;
215: }
216:
217: public Resource fetchByPrimaryKey(long resourceId)
218: throws SystemException {
219: Session session = null;
220:
221: try {
222: session = openSession();
223:
224: return (Resource) session.get(ResourceImpl.class, new Long(
225: resourceId));
226: } catch (Exception e) {
227: throw HibernateUtil.processException(e);
228: } finally {
229: closeSession(session);
230: }
231: }
232:
233: public List findByCodeId(long codeId) throws SystemException {
234: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
235: String finderClassName = Resource.class.getName();
236: String finderMethodName = "findByCodeId";
237: String[] finderParams = new String[] { Long.class.getName() };
238: Object[] finderArgs = new Object[] { new Long(codeId) };
239:
240: Object result = null;
241:
242: if (finderClassNameCacheEnabled) {
243: result = FinderCache.getResult(finderClassName,
244: finderMethodName, finderParams, finderArgs,
245: getSessionFactory());
246: }
247:
248: if (result == null) {
249: Session session = null;
250:
251: try {
252: session = openSession();
253:
254: StringMaker query = new StringMaker();
255:
256: query
257: .append("FROM com.liferay.portal.model.Resource WHERE ");
258:
259: query.append("codeId = ?");
260:
261: query.append(" ");
262:
263: Query q = session.createQuery(query.toString());
264:
265: int queryPos = 0;
266:
267: q.setLong(queryPos++, codeId);
268:
269: List list = q.list();
270:
271: FinderCache.putResult(finderClassNameCacheEnabled,
272: finderClassName, finderMethodName,
273: finderParams, finderArgs, list);
274:
275: return list;
276: } catch (Exception e) {
277: throw HibernateUtil.processException(e);
278: } finally {
279: closeSession(session);
280: }
281: } else {
282: return (List) result;
283: }
284: }
285:
286: public List findByCodeId(long codeId, int begin, int end)
287: throws SystemException {
288: return findByCodeId(codeId, begin, end, null);
289: }
290:
291: public List findByCodeId(long codeId, int begin, int end,
292: OrderByComparator obc) throws SystemException {
293: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
294: String finderClassName = Resource.class.getName();
295: String finderMethodName = "findByCodeId";
296: String[] finderParams = new String[] { Long.class.getName(),
297:
298: "java.lang.Integer", "java.lang.Integer",
299: "com.liferay.portal.kernel.util.OrderByComparator" };
300: Object[] finderArgs = new Object[] { new Long(codeId),
301:
302: String.valueOf(begin), String.valueOf(end), String.valueOf(obc) };
303:
304: Object result = null;
305:
306: if (finderClassNameCacheEnabled) {
307: result = FinderCache.getResult(finderClassName,
308: finderMethodName, finderParams, finderArgs,
309: getSessionFactory());
310: }
311:
312: if (result == null) {
313: Session session = null;
314:
315: try {
316: session = openSession();
317:
318: StringMaker query = new StringMaker();
319:
320: query
321: .append("FROM com.liferay.portal.model.Resource WHERE ");
322:
323: query.append("codeId = ?");
324:
325: query.append(" ");
326:
327: if (obc != null) {
328: query.append("ORDER BY ");
329: query.append(obc.getOrderBy());
330: }
331:
332: Query q = session.createQuery(query.toString());
333:
334: int queryPos = 0;
335:
336: q.setLong(queryPos++, codeId);
337:
338: List list = QueryUtil.list(q, getDialect(), begin, end);
339:
340: FinderCache.putResult(finderClassNameCacheEnabled,
341: finderClassName, finderMethodName,
342: finderParams, finderArgs, list);
343:
344: return list;
345: } catch (Exception e) {
346: throw HibernateUtil.processException(e);
347: } finally {
348: closeSession(session);
349: }
350: } else {
351: return (List) result;
352: }
353: }
354:
355: public Resource findByCodeId_First(long codeId,
356: OrderByComparator obc) throws NoSuchResourceException,
357: SystemException {
358: List list = findByCodeId(codeId, 0, 1, obc);
359:
360: if (list.size() == 0) {
361: StringMaker msg = new StringMaker();
362:
363: msg.append("No Resource exists with the key {");
364:
365: msg.append("codeId=" + codeId);
366:
367: msg.append(StringPool.CLOSE_CURLY_BRACE);
368:
369: throw new NoSuchResourceException(msg.toString());
370: } else {
371: return (Resource) list.get(0);
372: }
373: }
374:
375: public Resource findByCodeId_Last(long codeId, OrderByComparator obc)
376: throws NoSuchResourceException, SystemException {
377: int count = countByCodeId(codeId);
378:
379: List list = findByCodeId(codeId, count - 1, count, obc);
380:
381: if (list.size() == 0) {
382: StringMaker msg = new StringMaker();
383:
384: msg.append("No Resource exists with the key {");
385:
386: msg.append("codeId=" + codeId);
387:
388: msg.append(StringPool.CLOSE_CURLY_BRACE);
389:
390: throw new NoSuchResourceException(msg.toString());
391: } else {
392: return (Resource) list.get(0);
393: }
394: }
395:
396: public Resource[] findByCodeId_PrevAndNext(long resourceId,
397: long codeId, OrderByComparator obc)
398: throws NoSuchResourceException, SystemException {
399: Resource resource = findByPrimaryKey(resourceId);
400:
401: int count = countByCodeId(codeId);
402:
403: Session session = null;
404:
405: try {
406: session = openSession();
407:
408: StringMaker query = new StringMaker();
409:
410: query
411: .append("FROM com.liferay.portal.model.Resource WHERE ");
412:
413: query.append("codeId = ?");
414:
415: query.append(" ");
416:
417: if (obc != null) {
418: query.append("ORDER BY ");
419: query.append(obc.getOrderBy());
420: }
421:
422: Query q = session.createQuery(query.toString());
423:
424: int queryPos = 0;
425:
426: q.setLong(queryPos++, codeId);
427:
428: Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
429: resource);
430:
431: Resource[] array = new ResourceImpl[3];
432:
433: array[0] = (Resource) objArray[0];
434: array[1] = (Resource) objArray[1];
435: array[2] = (Resource) objArray[2];
436:
437: return array;
438: } catch (Exception e) {
439: throw HibernateUtil.processException(e);
440: } finally {
441: closeSession(session);
442: }
443: }
444:
445: public Resource findByC_P(long codeId, String primKey)
446: throws NoSuchResourceException, SystemException {
447: Resource resource = fetchByC_P(codeId, primKey);
448:
449: if (resource == null) {
450: StringMaker msg = new StringMaker();
451:
452: msg.append("No Resource exists with the key {");
453:
454: msg.append("codeId=" + codeId);
455:
456: msg.append(", ");
457: msg.append("primKey=" + primKey);
458:
459: msg.append(StringPool.CLOSE_CURLY_BRACE);
460:
461: if (_log.isWarnEnabled()) {
462: _log.warn(msg.toString());
463: }
464:
465: throw new NoSuchResourceException(msg.toString());
466: }
467:
468: return resource;
469: }
470:
471: public Resource fetchByC_P(long codeId, String primKey)
472: throws SystemException {
473: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
474: String finderClassName = Resource.class.getName();
475: String finderMethodName = "fetchByC_P";
476: String[] finderParams = new String[] { Long.class.getName(),
477: String.class.getName() };
478: Object[] finderArgs = new Object[] { new Long(codeId), primKey };
479:
480: Object result = null;
481:
482: if (finderClassNameCacheEnabled) {
483: result = FinderCache.getResult(finderClassName,
484: finderMethodName, finderParams, finderArgs,
485: getSessionFactory());
486: }
487:
488: if (result == null) {
489: Session session = null;
490:
491: try {
492: session = openSession();
493:
494: StringMaker query = new StringMaker();
495:
496: query
497: .append("FROM com.liferay.portal.model.Resource WHERE ");
498:
499: query.append("codeId = ?");
500:
501: query.append(" AND ");
502:
503: if (primKey == null) {
504: query.append("primKey IS NULL");
505: } else {
506: query.append("primKey = ?");
507: }
508:
509: query.append(" ");
510:
511: Query q = session.createQuery(query.toString());
512:
513: int queryPos = 0;
514:
515: q.setLong(queryPos++, codeId);
516:
517: if (primKey != null) {
518: q.setString(queryPos++, primKey);
519: }
520:
521: List list = q.list();
522:
523: FinderCache.putResult(finderClassNameCacheEnabled,
524: finderClassName, finderMethodName,
525: finderParams, finderArgs, list);
526:
527: if (list.size() == 0) {
528: return null;
529: } else {
530: return (Resource) list.get(0);
531: }
532: } catch (Exception e) {
533: throw HibernateUtil.processException(e);
534: } finally {
535: closeSession(session);
536: }
537: } else {
538: List list = (List) result;
539:
540: if (list.size() == 0) {
541: return null;
542: } else {
543: return (Resource) list.get(0);
544: }
545: }
546: }
547:
548: public List findWithDynamicQuery(
549: DynamicQueryInitializer queryInitializer)
550: throws SystemException {
551: Session session = null;
552:
553: try {
554: session = openSession();
555:
556: DynamicQuery query = queryInitializer.initialize(session);
557:
558: return query.list();
559: } catch (Exception e) {
560: throw HibernateUtil.processException(e);
561: } finally {
562: closeSession(session);
563: }
564: }
565:
566: public List findWithDynamicQuery(
567: DynamicQueryInitializer queryInitializer, int begin, int end)
568: throws SystemException {
569: Session session = null;
570:
571: try {
572: session = openSession();
573:
574: DynamicQuery query = queryInitializer.initialize(session);
575:
576: query.setLimit(begin, end);
577:
578: return query.list();
579: } catch (Exception e) {
580: throw HibernateUtil.processException(e);
581: } finally {
582: closeSession(session);
583: }
584: }
585:
586: public List findAll() throws SystemException {
587: return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
588: }
589:
590: public List findAll(int begin, int end) throws SystemException {
591: return findAll(begin, end, null);
592: }
593:
594: public List findAll(int begin, int end, OrderByComparator obc)
595: throws SystemException {
596: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
597: String finderClassName = Resource.class.getName();
598: String finderMethodName = "findAll";
599: String[] finderParams = new String[] { "java.lang.Integer",
600: "java.lang.Integer",
601: "com.liferay.portal.kernel.util.OrderByComparator" };
602: Object[] finderArgs = new Object[] { String.valueOf(begin),
603: String.valueOf(end), String.valueOf(obc) };
604:
605: Object result = null;
606:
607: if (finderClassNameCacheEnabled) {
608: result = FinderCache.getResult(finderClassName,
609: finderMethodName, finderParams, finderArgs,
610: getSessionFactory());
611: }
612:
613: if (result == null) {
614: Session session = null;
615:
616: try {
617: session = openSession();
618:
619: StringMaker query = new StringMaker();
620:
621: query.append("FROM com.liferay.portal.model.Resource ");
622:
623: if (obc != null) {
624: query.append("ORDER BY ");
625: query.append(obc.getOrderBy());
626: }
627:
628: Query q = session.createQuery(query.toString());
629:
630: List list = QueryUtil.list(q, getDialect(), begin, end);
631:
632: if (obc == null) {
633: Collections.sort(list);
634: }
635:
636: FinderCache.putResult(finderClassNameCacheEnabled,
637: finderClassName, finderMethodName,
638: finderParams, finderArgs, list);
639:
640: return list;
641: } catch (Exception e) {
642: throw HibernateUtil.processException(e);
643: } finally {
644: closeSession(session);
645: }
646: } else {
647: return (List) result;
648: }
649: }
650:
651: public void removeByCodeId(long codeId) throws SystemException {
652: Iterator itr = findByCodeId(codeId).iterator();
653:
654: while (itr.hasNext()) {
655: Resource resource = (Resource) itr.next();
656:
657: remove(resource);
658: }
659: }
660:
661: public void removeByC_P(long codeId, String primKey)
662: throws NoSuchResourceException, SystemException {
663: Resource resource = findByC_P(codeId, primKey);
664:
665: remove(resource);
666: }
667:
668: public void removeAll() throws SystemException {
669: Iterator itr = findAll().iterator();
670:
671: while (itr.hasNext()) {
672: remove((Resource) itr.next());
673: }
674: }
675:
676: public int countByCodeId(long codeId) throws SystemException {
677: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
678: String finderClassName = Resource.class.getName();
679: String finderMethodName = "countByCodeId";
680: String[] finderParams = new String[] { Long.class.getName() };
681: Object[] finderArgs = new Object[] { new Long(codeId) };
682:
683: Object result = null;
684:
685: if (finderClassNameCacheEnabled) {
686: result = FinderCache.getResult(finderClassName,
687: finderMethodName, finderParams, finderArgs,
688: getSessionFactory());
689: }
690:
691: if (result == null) {
692: Session session = null;
693:
694: try {
695: session = openSession();
696:
697: StringMaker query = new StringMaker();
698:
699: query.append("SELECT COUNT(*) ");
700: query
701: .append("FROM com.liferay.portal.model.Resource WHERE ");
702:
703: query.append("codeId = ?");
704:
705: query.append(" ");
706:
707: Query q = session.createQuery(query.toString());
708:
709: int queryPos = 0;
710:
711: q.setLong(queryPos++, codeId);
712:
713: Long count = null;
714:
715: Iterator itr = q.list().iterator();
716:
717: if (itr.hasNext()) {
718: count = (Long) itr.next();
719: }
720:
721: if (count == null) {
722: count = new Long(0);
723: }
724:
725: FinderCache.putResult(finderClassNameCacheEnabled,
726: finderClassName, finderMethodName,
727: finderParams, finderArgs, count);
728:
729: return count.intValue();
730: } catch (Exception e) {
731: throw HibernateUtil.processException(e);
732: } finally {
733: closeSession(session);
734: }
735: } else {
736: return ((Long) result).intValue();
737: }
738: }
739:
740: public int countByC_P(long codeId, String primKey)
741: throws SystemException {
742: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
743: String finderClassName = Resource.class.getName();
744: String finderMethodName = "countByC_P";
745: String[] finderParams = new String[] { Long.class.getName(),
746: String.class.getName() };
747: Object[] finderArgs = new Object[] { new Long(codeId), primKey };
748:
749: Object result = null;
750:
751: if (finderClassNameCacheEnabled) {
752: result = FinderCache.getResult(finderClassName,
753: finderMethodName, finderParams, finderArgs,
754: getSessionFactory());
755: }
756:
757: if (result == null) {
758: Session session = null;
759:
760: try {
761: session = openSession();
762:
763: StringMaker query = new StringMaker();
764:
765: query.append("SELECT COUNT(*) ");
766: query
767: .append("FROM com.liferay.portal.model.Resource WHERE ");
768:
769: query.append("codeId = ?");
770:
771: query.append(" AND ");
772:
773: if (primKey == null) {
774: query.append("primKey IS NULL");
775: } else {
776: query.append("primKey = ?");
777: }
778:
779: query.append(" ");
780:
781: Query q = session.createQuery(query.toString());
782:
783: int queryPos = 0;
784:
785: q.setLong(queryPos++, codeId);
786:
787: if (primKey != null) {
788: q.setString(queryPos++, primKey);
789: }
790:
791: Long count = null;
792:
793: Iterator itr = q.list().iterator();
794:
795: if (itr.hasNext()) {
796: count = (Long) itr.next();
797: }
798:
799: if (count == null) {
800: count = new Long(0);
801: }
802:
803: FinderCache.putResult(finderClassNameCacheEnabled,
804: finderClassName, finderMethodName,
805: finderParams, finderArgs, count);
806:
807: return count.intValue();
808: } catch (Exception e) {
809: throw HibernateUtil.processException(e);
810: } finally {
811: closeSession(session);
812: }
813: } else {
814: return ((Long) result).intValue();
815: }
816: }
817:
818: public int countAll() throws SystemException {
819: boolean finderClassNameCacheEnabled = ResourceModelImpl.CACHE_ENABLED;
820: String finderClassName = Resource.class.getName();
821: String finderMethodName = "countAll";
822: String[] finderParams = new String[] {};
823: Object[] finderArgs = new Object[] {};
824:
825: Object result = null;
826:
827: if (finderClassNameCacheEnabled) {
828: result = FinderCache.getResult(finderClassName,
829: finderMethodName, finderParams, finderArgs,
830: getSessionFactory());
831: }
832:
833: if (result == null) {
834: Session session = null;
835:
836: try {
837: session = openSession();
838:
839: Query q = session
840: .createQuery("SELECT COUNT(*) FROM com.liferay.portal.model.Resource");
841:
842: Long count = null;
843:
844: Iterator itr = q.list().iterator();
845:
846: if (itr.hasNext()) {
847: count = (Long) itr.next();
848: }
849:
850: if (count == null) {
851: count = new Long(0);
852: }
853:
854: FinderCache.putResult(finderClassNameCacheEnabled,
855: finderClassName, finderMethodName,
856: finderParams, finderArgs, count);
857:
858: return count.intValue();
859: } catch (Exception e) {
860: throw HibernateUtil.processException(e);
861: } finally {
862: closeSession(session);
863: }
864: } else {
865: return ((Long) result).intValue();
866: }
867: }
868:
869: protected void initDao() {
870: }
871:
872: private static ModelListener _getListener() {
873: if (Validator.isNotNull(_LISTENER)) {
874: try {
875: return (ModelListener) Class.forName(_LISTENER)
876: .newInstance();
877: } catch (Exception e) {
878: _log.error(e);
879: }
880: }
881:
882: return null;
883: }
884:
885: private static final String _LISTENER = GetterUtil
886: .getString(PropsUtil
887: .get("value.object.listener.com.liferay.portal.model.Resource"));
888: private static Log _log = LogFactory
889: .getLog(ResourcePersistenceImpl.class);
890: }
|