001
014
015 package com.liferay.portlet.dynamicdatalists.service.persistence;
016
017 import com.liferay.portal.kernel.dao.orm.QueryPos;
018 import com.liferay.portal.kernel.dao.orm.QueryUtil;
019 import com.liferay.portal.kernel.dao.orm.SQLQuery;
020 import com.liferay.portal.kernel.dao.orm.Session;
021 import com.liferay.portal.kernel.dao.orm.Type;
022 import com.liferay.portal.kernel.exception.SystemException;
023 import com.liferay.portal.kernel.util.OrderByComparator;
024 import com.liferay.portal.kernel.util.StringUtil;
025 import com.liferay.portal.kernel.workflow.WorkflowConstants;
026 import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
027 import com.liferay.portlet.dynamicdatalists.model.DDLRecord;
028 import com.liferay.portlet.dynamicdatalists.model.impl.DDLRecordImpl;
029 import com.liferay.util.dao.orm.CustomSQLUtil;
030
031 import java.util.Iterator;
032 import java.util.List;
033
034
037 public class DDLRecordFinderImpl extends BasePersistenceImpl<DDLRecord>
038 implements DDLRecordFinder {
039
040 public static final String COUNT_BY_R_S =
041 DDLRecordFinder.class.getName() + ".countByR_S";
042
043 public static final String FIND_BY_R_S =
044 DDLRecordFinder.class.getName() + ".findByR_S";
045
046 public int countByR_S(long recordSetId, int status)
047 throws SystemException{
048
049 Session session = null;
050
051 try {
052 session = openSession();
053
054 String sql = CustomSQLUtil.get(COUNT_BY_R_S);
055
056 if (status == WorkflowConstants.STATUS_ANY) {
057 sql = StringUtil.replace(
058 sql, "(DDLRecordVersion.status = ?) AND", "");
059 }
060
061 SQLQuery q = session.createSQLQuery(sql);
062
063 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
064
065 QueryPos qPos = QueryPos.getInstance(q);
066
067 if (status != WorkflowConstants.STATUS_ANY) {
068 qPos.add(status);
069 }
070
071 qPos.add(recordSetId);
072
073 Iterator<Long> itr = q.iterate();
074
075 if (itr.hasNext()) {
076 Long count = itr.next();
077
078 if (count != null) {
079 return count.intValue();
080 }
081 }
082
083 return 0;
084 }
085 catch (Exception e) {
086 throw new SystemException(e);
087 }
088 finally {
089 closeSession(session);
090 }
091 }
092
093 public List<DDLRecord> findByR_S(
094 long recordSetId, int status, int start, int end,
095 OrderByComparator orderByComparator)
096 throws SystemException {
097
098 Session session = null;
099
100 try {
101 session = openSession();
102
103 String sql = CustomSQLUtil.get(FIND_BY_R_S);
104
105 if (status == WorkflowConstants.STATUS_ANY) {
106 sql = StringUtil.replace(
107 sql, "(DDLRecordVersion.status = ?) AND", "");
108 }
109
110 sql = CustomSQLUtil.replaceOrderBy(sql, orderByComparator);
111
112 SQLQuery q = session.createSQLQuery(sql);
113
114 q.addEntity("DDLRecord", DDLRecordImpl.class);
115
116 QueryPos qPos = QueryPos.getInstance(q);
117
118 if (status != WorkflowConstants.STATUS_ANY) {
119 qPos.add(status);
120 }
121
122 qPos.add(recordSetId);
123
124 return (List<DDLRecord>)QueryUtil.list(q, getDialect(), start, end);
125 }
126 catch (Exception e) {
127 throw new SystemException(e);
128 }
129 finally {
130 closeSession(session);
131 }
132 }
133
134 }