com.liferay.journal.service.persistence.impl.JournalArticlePersistenceImpl Maven / Gradle / Ivy
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.journal.service.persistence.impl;
import com.liferay.journal.exception.NoSuchArticleException;
import com.liferay.journal.model.JournalArticle;
import com.liferay.journal.model.JournalArticleTable;
import com.liferay.journal.model.impl.JournalArticleImpl;
import com.liferay.journal.model.impl.JournalArticleModelImpl;
import com.liferay.journal.service.persistence.JournalArticlePersistence;
import com.liferay.journal.service.persistence.JournalArticleUtil;
import com.liferay.journal.service.persistence.impl.constants.JournalPersistenceConstants;
import com.liferay.petra.lang.SafeCloseable;
import com.liferay.petra.string.StringBundler;
import com.liferay.portal.kernel.change.tracking.CTCollectionThreadLocal;
import com.liferay.portal.kernel.change.tracking.CTColumnResolutionType;
import com.liferay.portal.kernel.configuration.Configuration;
import com.liferay.portal.kernel.dao.orm.EntityCache;
import com.liferay.portal.kernel.dao.orm.FinderCache;
import com.liferay.portal.kernel.dao.orm.FinderPath;
import com.liferay.portal.kernel.dao.orm.Query;
import com.liferay.portal.kernel.dao.orm.QueryPos;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.dao.orm.SQLQuery;
import com.liferay.portal.kernel.dao.orm.Session;
import com.liferay.portal.kernel.dao.orm.SessionFactory;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.sanitizer.Sanitizer;
import com.liferay.portal.kernel.sanitizer.SanitizerException;
import com.liferay.portal.kernel.sanitizer.SanitizerUtil;
import com.liferay.portal.kernel.security.auth.CompanyThreadLocal;
import com.liferay.portal.kernel.security.auth.PrincipalThreadLocal;
import com.liferay.portal.kernel.security.permission.InlineSQLHelperUtil;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.service.ServiceContextThreadLocal;
import com.liferay.portal.kernel.service.persistence.change.tracking.helper.CTPersistenceHelper;
import com.liferay.portal.kernel.service.persistence.impl.BasePersistenceImpl;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.ContentTypes;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.util.PropsKeys;
import com.liferay.portal.kernel.util.PropsUtil;
import com.liferay.portal.kernel.util.ProxyUtil;
import com.liferay.portal.kernel.util.SetUtil;
import com.liferay.portal.kernel.util.StringUtil;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.kernel.uuid.PortalUUIDUtil;
import java.io.Serializable;
import java.lang.reflect.InvocationHandler;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import javax.sql.DataSource;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
/**
* The persistence implementation for the journal article service.
*
*
* Caching information and settings can be found in portal.properties
*
*
* @author Brian Wing Shun Chan
* @generated
*/
@Component(service = JournalArticlePersistence.class)
public class JournalArticlePersistenceImpl
extends BasePersistenceImpl
implements JournalArticlePersistence {
/*
* NOTE FOR DEVELOPERS:
*
* Never modify or reference this class directly. Always use JournalArticleUtil
to access the journal article persistence. Modify service.xml
and rerun ServiceBuilder to regenerate this class.
*/
public static final String FINDER_CLASS_NAME_ENTITY =
JournalArticleImpl.class.getName();
public static final String FINDER_CLASS_NAME_LIST_WITH_PAGINATION =
FINDER_CLASS_NAME_ENTITY + ".List1";
public static final String FINDER_CLASS_NAME_LIST_WITHOUT_PAGINATION =
FINDER_CLASS_NAME_ENTITY + ".List2";
private FinderPath _finderPathWithPaginationFindAll;
private FinderPath _finderPathWithoutPaginationFindAll;
private FinderPath _finderPathCountAll;
private FinderPath _finderPathWithPaginationFindByResourcePrimKey;
private FinderPath _finderPathWithoutPaginationFindByResourcePrimKey;
private FinderPath _finderPathCountByResourcePrimKey;
/**
* Returns all the journal articles where resourcePrimKey = ?.
*
* @param resourcePrimKey the resource prim key
* @return the matching journal articles
*/
@Override
public List findByResourcePrimKey(long resourcePrimKey) {
return findByResourcePrimKey(
resourcePrimKey, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where resourcePrimKey = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByResourcePrimKey(
long resourcePrimKey, int start, int end) {
return findByResourcePrimKey(resourcePrimKey, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByResourcePrimKey(
long resourcePrimKey, int start, int end,
OrderByComparator orderByComparator) {
return findByResourcePrimKey(
resourcePrimKey, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByResourcePrimKey(
long resourcePrimKey, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath =
_finderPathWithoutPaginationFindByResourcePrimKey;
finderArgs = new Object[] {resourcePrimKey};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByResourcePrimKey;
finderArgs = new Object[] {
resourcePrimKey, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (resourcePrimKey !=
journalArticle.getResourcePrimKey()) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_RESOURCEPRIMKEY_RESOURCEPRIMKEY_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where resourcePrimKey = ?.
*
* @param resourcePrimKey the resource prim key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByResourcePrimKey_First(
long resourcePrimKey,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByResourcePrimKey_First(
resourcePrimKey, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("resourcePrimKey=");
sb.append(resourcePrimKey);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where resourcePrimKey = ?.
*
* @param resourcePrimKey the resource prim key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByResourcePrimKey_First(
long resourcePrimKey,
OrderByComparator orderByComparator) {
List list = findByResourcePrimKey(
resourcePrimKey, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where resourcePrimKey = ?.
*
* @param resourcePrimKey the resource prim key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByResourcePrimKey_Last(
long resourcePrimKey,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByResourcePrimKey_Last(
resourcePrimKey, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("resourcePrimKey=");
sb.append(resourcePrimKey);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where resourcePrimKey = ?.
*
* @param resourcePrimKey the resource prim key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByResourcePrimKey_Last(
long resourcePrimKey,
OrderByComparator orderByComparator) {
int count = countByResourcePrimKey(resourcePrimKey);
if (count == 0) {
return null;
}
List list = findByResourcePrimKey(
resourcePrimKey, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where resourcePrimKey = ?.
*
* @param id the primary key of the current journal article
* @param resourcePrimKey the resource prim key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByResourcePrimKey_PrevAndNext(
long id, long resourcePrimKey,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByResourcePrimKey_PrevAndNext(
session, journalArticle, resourcePrimKey, orderByComparator,
true);
array[1] = journalArticle;
array[2] = getByResourcePrimKey_PrevAndNext(
session, journalArticle, resourcePrimKey, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByResourcePrimKey_PrevAndNext(
Session session, JournalArticle journalArticle, long resourcePrimKey,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_RESOURCEPRIMKEY_RESOURCEPRIMKEY_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where resourcePrimKey = ? from the database.
*
* @param resourcePrimKey the resource prim key
*/
@Override
public void removeByResourcePrimKey(long resourcePrimKey) {
for (JournalArticle journalArticle :
findByResourcePrimKey(
resourcePrimKey, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where resourcePrimKey = ?.
*
* @param resourcePrimKey the resource prim key
* @return the number of matching journal articles
*/
@Override
public int countByResourcePrimKey(long resourcePrimKey) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByResourcePrimKey;
Object[] finderArgs = new Object[] {resourcePrimKey};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_RESOURCEPRIMKEY_RESOURCEPRIMKEY_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String
_FINDER_COLUMN_RESOURCEPRIMKEY_RESOURCEPRIMKEY_2 =
"journalArticle.resourcePrimKey = ?";
private FinderPath _finderPathWithPaginationFindByUuid;
private FinderPath _finderPathWithoutPaginationFindByUuid;
private FinderPath _finderPathCountByUuid;
/**
* Returns all the journal articles where uuid = ?.
*
* @param uuid the uuid
* @return the matching journal articles
*/
@Override
public List findByUuid(String uuid) {
return findByUuid(uuid, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where uuid = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param uuid the uuid
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByUuid(String uuid, int start, int end) {
return findByUuid(uuid, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where uuid = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param uuid the uuid
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByUuid(
String uuid, int start, int end,
OrderByComparator orderByComparator) {
return findByUuid(uuid, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where uuid = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param uuid the uuid
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByUuid(
String uuid, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
uuid = Objects.toString(uuid, "");
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByUuid;
finderArgs = new Object[] {uuid};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByUuid;
finderArgs = new Object[] {uuid, start, end, orderByComparator};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (!uuid.equals(journalArticle.getUuid())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_UUID_2);
}
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where uuid = ?.
*
* @param uuid the uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByUuid_First(
String uuid, OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByUuid_First(
uuid, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("uuid=");
sb.append(uuid);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where uuid = ?.
*
* @param uuid the uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByUuid_First(
String uuid, OrderByComparator orderByComparator) {
List list = findByUuid(uuid, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where uuid = ?.
*
* @param uuid the uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByUuid_Last(
String uuid, OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByUuid_Last(
uuid, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("uuid=");
sb.append(uuid);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where uuid = ?.
*
* @param uuid the uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByUuid_Last(
String uuid, OrderByComparator orderByComparator) {
int count = countByUuid(uuid);
if (count == 0) {
return null;
}
List list = findByUuid(
uuid, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where uuid = ?.
*
* @param id the primary key of the current journal article
* @param uuid the uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByUuid_PrevAndNext(
long id, String uuid,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
uuid = Objects.toString(uuid, "");
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByUuid_PrevAndNext(
session, journalArticle, uuid, orderByComparator, true);
array[1] = journalArticle;
array[2] = getByUuid_PrevAndNext(
session, journalArticle, uuid, orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByUuid_PrevAndNext(
Session session, JournalArticle journalArticle, String uuid,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_UUID_2);
}
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where uuid = ? from the database.
*
* @param uuid the uuid
*/
@Override
public void removeByUuid(String uuid) {
for (JournalArticle journalArticle :
findByUuid(uuid, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where uuid = ?.
*
* @param uuid the uuid
* @return the number of matching journal articles
*/
@Override
public int countByUuid(String uuid) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
uuid = Objects.toString(uuid, "");
FinderPath finderPath = _finderPathCountByUuid;
Object[] finderArgs = new Object[] {uuid};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_UUID_2);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_UUID_UUID_2 =
"journalArticle.uuid = ?";
private static final String _FINDER_COLUMN_UUID_UUID_3 =
"(journalArticle.uuid IS NULL OR journalArticle.uuid = '')";
private FinderPath _finderPathFetchByUUID_G;
private FinderPath _finderPathCountByUUID_G;
/**
* Returns the journal article where uuid = ? and groupId = ? or throws a NoSuchArticleException
if it could not be found.
*
* @param uuid the uuid
* @param groupId the group ID
* @return the matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByUUID_G(String uuid, long groupId)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByUUID_G(uuid, groupId);
if (journalArticle == null) {
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("uuid=");
sb.append(uuid);
sb.append(", groupId=");
sb.append(groupId);
sb.append("}");
if (_log.isDebugEnabled()) {
_log.debug(sb.toString());
}
throw new NoSuchArticleException(sb.toString());
}
return journalArticle;
}
/**
* Returns the journal article where uuid = ? and groupId = ? or returns null
if it could not be found. Uses the finder cache.
*
* @param uuid the uuid
* @param groupId the group ID
* @return the matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByUUID_G(String uuid, long groupId) {
return fetchByUUID_G(uuid, groupId, true);
}
/**
* Returns the journal article where uuid = ? and groupId = ? or returns null
if it could not be found, optionally using the finder cache.
*
* @param uuid the uuid
* @param groupId the group ID
* @param useFinderCache whether to use the finder cache
* @return the matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByUUID_G(
String uuid, long groupId, boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
uuid = Objects.toString(uuid, "");
Object[] finderArgs = null;
if (useFinderCache) {
finderArgs = new Object[] {uuid, groupId};
}
Object result = null;
if (useFinderCache) {
result = finderCache.getResult(
_finderPathFetchByUUID_G, finderArgs, this);
}
if (result instanceof JournalArticle) {
JournalArticle journalArticle = (JournalArticle)result;
if (!Objects.equals(uuid, journalArticle.getUuid()) ||
(groupId != journalArticle.getGroupId())) {
result = null;
}
}
if (result == null) {
StringBundler sb = new StringBundler(4);
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_G_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_G_UUID_2);
}
sb.append(_FINDER_COLUMN_UUID_G_GROUPID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
queryPos.add(groupId);
List list = query.list();
if (list.isEmpty()) {
if (useFinderCache) {
finderCache.putResult(
_finderPathFetchByUUID_G, finderArgs, list);
}
}
else {
JournalArticle journalArticle = list.get(0);
result = journalArticle;
cacheResult(journalArticle);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
if (result instanceof List>) {
return null;
}
else {
return (JournalArticle)result;
}
}
}
/**
* Removes the journal article where uuid = ? and groupId = ? from the database.
*
* @param uuid the uuid
* @param groupId the group ID
* @return the journal article that was removed
*/
@Override
public JournalArticle removeByUUID_G(String uuid, long groupId)
throws NoSuchArticleException {
JournalArticle journalArticle = findByUUID_G(uuid, groupId);
return remove(journalArticle);
}
/**
* Returns the number of journal articles where uuid = ? and groupId = ?.
*
* @param uuid the uuid
* @param groupId the group ID
* @return the number of matching journal articles
*/
@Override
public int countByUUID_G(String uuid, long groupId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
uuid = Objects.toString(uuid, "");
FinderPath finderPath = _finderPathCountByUUID_G;
Object[] finderArgs = new Object[] {uuid, groupId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(3);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_G_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_G_UUID_2);
}
sb.append(_FINDER_COLUMN_UUID_G_GROUPID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
queryPos.add(groupId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_UUID_G_UUID_2 =
"journalArticle.uuid = ? AND ";
private static final String _FINDER_COLUMN_UUID_G_UUID_3 =
"(journalArticle.uuid IS NULL OR journalArticle.uuid = '') AND ";
private static final String _FINDER_COLUMN_UUID_G_GROUPID_2 =
"journalArticle.groupId = ?";
private FinderPath _finderPathWithPaginationFindByUuid_C;
private FinderPath _finderPathWithoutPaginationFindByUuid_C;
private FinderPath _finderPathCountByUuid_C;
/**
* Returns all the journal articles where uuid = ? and companyId = ?.
*
* @param uuid the uuid
* @param companyId the company ID
* @return the matching journal articles
*/
@Override
public List findByUuid_C(String uuid, long companyId) {
return findByUuid_C(
uuid, companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where uuid = ? and companyId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param uuid the uuid
* @param companyId the company ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByUuid_C(
String uuid, long companyId, int start, int end) {
return findByUuid_C(uuid, companyId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where uuid = ? and companyId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param uuid the uuid
* @param companyId the company ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByUuid_C(
String uuid, long companyId, int start, int end,
OrderByComparator orderByComparator) {
return findByUuid_C(
uuid, companyId, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where uuid = ? and companyId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param uuid the uuid
* @param companyId the company ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByUuid_C(
String uuid, long companyId, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
uuid = Objects.toString(uuid, "");
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByUuid_C;
finderArgs = new Object[] {uuid, companyId};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByUuid_C;
finderArgs = new Object[] {
uuid, companyId, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (!uuid.equals(journalArticle.getUuid()) ||
(companyId != journalArticle.getCompanyId())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_C_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_C_UUID_2);
}
sb.append(_FINDER_COLUMN_UUID_C_COMPANYID_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
queryPos.add(companyId);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where uuid = ? and companyId = ?.
*
* @param uuid the uuid
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByUuid_C_First(
String uuid, long companyId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByUuid_C_First(
uuid, companyId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("uuid=");
sb.append(uuid);
sb.append(", companyId=");
sb.append(companyId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where uuid = ? and companyId = ?.
*
* @param uuid the uuid
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByUuid_C_First(
String uuid, long companyId,
OrderByComparator orderByComparator) {
List list = findByUuid_C(
uuid, companyId, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where uuid = ? and companyId = ?.
*
* @param uuid the uuid
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByUuid_C_Last(
String uuid, long companyId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByUuid_C_Last(
uuid, companyId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("uuid=");
sb.append(uuid);
sb.append(", companyId=");
sb.append(companyId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where uuid = ? and companyId = ?.
*
* @param uuid the uuid
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByUuid_C_Last(
String uuid, long companyId,
OrderByComparator orderByComparator) {
int count = countByUuid_C(uuid, companyId);
if (count == 0) {
return null;
}
List list = findByUuid_C(
uuid, companyId, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where uuid = ? and companyId = ?.
*
* @param id the primary key of the current journal article
* @param uuid the uuid
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByUuid_C_PrevAndNext(
long id, String uuid, long companyId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
uuid = Objects.toString(uuid, "");
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByUuid_C_PrevAndNext(
session, journalArticle, uuid, companyId, orderByComparator,
true);
array[1] = journalArticle;
array[2] = getByUuid_C_PrevAndNext(
session, journalArticle, uuid, companyId, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByUuid_C_PrevAndNext(
Session session, JournalArticle journalArticle, String uuid,
long companyId, OrderByComparator orderByComparator,
boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
5 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_C_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_C_UUID_2);
}
sb.append(_FINDER_COLUMN_UUID_C_COMPANYID_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
queryPos.add(companyId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where uuid = ? and companyId = ? from the database.
*
* @param uuid the uuid
* @param companyId the company ID
*/
@Override
public void removeByUuid_C(String uuid, long companyId) {
for (JournalArticle journalArticle :
findByUuid_C(
uuid, companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where uuid = ? and companyId = ?.
*
* @param uuid the uuid
* @param companyId the company ID
* @return the number of matching journal articles
*/
@Override
public int countByUuid_C(String uuid, long companyId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
uuid = Objects.toString(uuid, "");
FinderPath finderPath = _finderPathCountByUuid_C;
Object[] finderArgs = new Object[] {uuid, companyId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(3);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
boolean bindUuid = false;
if (uuid.isEmpty()) {
sb.append(_FINDER_COLUMN_UUID_C_UUID_3);
}
else {
bindUuid = true;
sb.append(_FINDER_COLUMN_UUID_C_UUID_2);
}
sb.append(_FINDER_COLUMN_UUID_C_COMPANYID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindUuid) {
queryPos.add(uuid);
}
queryPos.add(companyId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_UUID_C_UUID_2 =
"journalArticle.uuid = ? AND ";
private static final String _FINDER_COLUMN_UUID_C_UUID_3 =
"(journalArticle.uuid IS NULL OR journalArticle.uuid = '') AND ";
private static final String _FINDER_COLUMN_UUID_C_COMPANYID_2 =
"journalArticle.companyId = ?";
private FinderPath _finderPathWithPaginationFindByGroupId;
private FinderPath _finderPathWithoutPaginationFindByGroupId;
private FinderPath _finderPathCountByGroupId;
/**
* Returns all the journal articles where groupId = ?.
*
* @param groupId the group ID
* @return the matching journal articles
*/
@Override
public List findByGroupId(long groupId) {
return findByGroupId(
groupId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where groupId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByGroupId(
long groupId, int start, int end) {
return findByGroupId(groupId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where groupId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByGroupId(
long groupId, int start, int end,
OrderByComparator orderByComparator) {
return findByGroupId(groupId, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where groupId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByGroupId(
long groupId, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByGroupId;
finderArgs = new Object[] {groupId};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByGroupId;
finderArgs = new Object[] {
groupId, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (groupId != journalArticle.getGroupId()) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupId);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where groupId = ?.
*
* @param groupId the group ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByGroupId_First(
long groupId, OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByGroupId_First(
groupId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("groupId=");
sb.append(groupId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where groupId = ?.
*
* @param groupId the group ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByGroupId_First(
long groupId, OrderByComparator orderByComparator) {
List list = findByGroupId(
groupId, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where groupId = ?.
*
* @param groupId the group ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByGroupId_Last(
long groupId, OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByGroupId_Last(
groupId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("groupId=");
sb.append(groupId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where groupId = ?.
*
* @param groupId the group ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByGroupId_Last(
long groupId, OrderByComparator orderByComparator) {
int count = countByGroupId(groupId);
if (count == 0) {
return null;
}
List list = findByGroupId(
groupId, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where groupId = ?.
*
* @param id the primary key of the current journal article
* @param groupId the group ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByGroupId_PrevAndNext(
long id, long groupId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByGroupId_PrevAndNext(
session, journalArticle, groupId, orderByComparator, true);
array[1] = journalArticle;
array[2] = getByGroupId_PrevAndNext(
session, journalArticle, groupId, orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByGroupId_PrevAndNext(
Session session, JournalArticle journalArticle, long groupId,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Returns all the journal articles that the user has permission to view where groupId = ?.
*
* @param groupId the group ID
* @return the matching journal articles that the user has permission to view
*/
@Override
public List filterFindByGroupId(long groupId) {
return filterFindByGroupId(
groupId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles that the user has permission to view where groupId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles that the user has permission to view
*/
@Override
public List filterFindByGroupId(
long groupId, int start, int end) {
return filterFindByGroupId(groupId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles that the user has permissions to view where groupId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles that the user has permission to view
*/
@Override
public List filterFindByGroupId(
long groupId, int start, int end,
OrderByComparator orderByComparator) {
if (!InlineSQLHelperUtil.isEnabled(groupId)) {
return findByGroupId(groupId, start, end, orderByComparator);
}
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(4);
}
if (getDB().isSupportsInlineDistinct()) {
sb.append(_FILTER_SQL_SELECT_JOURNALARTICLE_WHERE);
}
else {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_1);
}
sb.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
if (!getDB().isSupportsInlineDistinct()) {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_2);
}
if (orderByComparator != null) {
if (getDB().isSupportsInlineDistinct()) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator, true);
}
else {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_TABLE, orderByComparator, true);
}
}
else {
if (getDB().isSupportsInlineDistinct()) {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_SQL);
}
}
String sql = InlineSQLHelperUtil.replacePermissionCheck(
sb.toString(), JournalArticle.class.getName(),
_FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);
Session session = null;
try {
session = openSession();
SQLQuery sqlQuery = session.createSynchronizedSQLQuery(sql);
if (getDB().isSupportsInlineDistinct()) {
sqlQuery.addEntity(
_FILTER_ENTITY_ALIAS, JournalArticleImpl.class);
}
else {
sqlQuery.addEntity(
_FILTER_ENTITY_TABLE, JournalArticleImpl.class);
}
QueryPos queryPos = QueryPos.getInstance(sqlQuery);
queryPos.add(groupId);
return (List)QueryUtil.list(
sqlQuery, getDialect(), start, end);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
/**
* Returns the journal articles before and after the current journal article in the ordered set of journal articles that the user has permission to view where groupId = ?.
*
* @param id the primary key of the current journal article
* @param groupId the group ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] filterFindByGroupId_PrevAndNext(
long id, long groupId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
if (!InlineSQLHelperUtil.isEnabled(groupId)) {
return findByGroupId_PrevAndNext(id, groupId, orderByComparator);
}
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = filterGetByGroupId_PrevAndNext(
session, journalArticle, groupId, orderByComparator, true);
array[1] = journalArticle;
array[2] = filterGetByGroupId_PrevAndNext(
session, journalArticle, groupId, orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle filterGetByGroupId_PrevAndNext(
Session session, JournalArticle journalArticle, long groupId,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
5 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(4);
}
if (getDB().isSupportsInlineDistinct()) {
sb.append(_FILTER_SQL_SELECT_JOURNALARTICLE_WHERE);
}
else {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_1);
}
sb.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
if (!getDB().isSupportsInlineDistinct()) {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_2);
}
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
if (getDB().isSupportsInlineDistinct()) {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_ALIAS, orderByConditionFields[i],
true));
}
else {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_TABLE, orderByConditionFields[i],
true));
}
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
if (getDB().isSupportsInlineDistinct()) {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_ALIAS, orderByFields[i], true));
}
else {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_TABLE, orderByFields[i], true));
}
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
if (getDB().isSupportsInlineDistinct()) {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_SQL);
}
}
String sql = InlineSQLHelperUtil.replacePermissionCheck(
sb.toString(), JournalArticle.class.getName(),
_FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);
SQLQuery sqlQuery = session.createSynchronizedSQLQuery(sql);
sqlQuery.setFirstResult(0);
sqlQuery.setMaxResults(2);
if (getDB().isSupportsInlineDistinct()) {
sqlQuery.addEntity(_FILTER_ENTITY_ALIAS, JournalArticleImpl.class);
}
else {
sqlQuery.addEntity(_FILTER_ENTITY_TABLE, JournalArticleImpl.class);
}
QueryPos queryPos = QueryPos.getInstance(sqlQuery);
queryPos.add(groupId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = sqlQuery.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where groupId = ? from the database.
*
* @param groupId the group ID
*/
@Override
public void removeByGroupId(long groupId) {
for (JournalArticle journalArticle :
findByGroupId(
groupId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where groupId = ?.
*
* @param groupId the group ID
* @return the number of matching journal articles
*/
@Override
public int countByGroupId(long groupId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByGroupId;
Object[] finderArgs = new Object[] {groupId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
/**
* Returns the number of journal articles that the user has permission to view where groupId = ?.
*
* @param groupId the group ID
* @return the number of matching journal articles that the user has permission to view
*/
@Override
public int filterCountByGroupId(long groupId) {
if (!InlineSQLHelperUtil.isEnabled(groupId)) {
return countByGroupId(groupId);
}
StringBundler sb = new StringBundler(2);
sb.append(_FILTER_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
String sql = InlineSQLHelperUtil.replacePermissionCheck(
sb.toString(), JournalArticle.class.getName(),
_FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);
Session session = null;
try {
session = openSession();
SQLQuery sqlQuery = session.createSynchronizedSQLQuery(sql);
sqlQuery.addScalar(
COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);
QueryPos queryPos = QueryPos.getInstance(sqlQuery);
queryPos.add(groupId);
Long count = (Long)sqlQuery.uniqueResult();
return count.intValue();
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
private static final String _FINDER_COLUMN_GROUPID_GROUPID_2 =
"journalArticle.groupId = ?";
private FinderPath _finderPathWithPaginationFindByCompanyId;
private FinderPath _finderPathWithoutPaginationFindByCompanyId;
private FinderPath _finderPathCountByCompanyId;
/**
* Returns all the journal articles where companyId = ?.
*
* @param companyId the company ID
* @return the matching journal articles
*/
@Override
public List findByCompanyId(long companyId) {
return findByCompanyId(
companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where companyId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param companyId the company ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByCompanyId(
long companyId, int start, int end) {
return findByCompanyId(companyId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where companyId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param companyId the company ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByCompanyId(
long companyId, int start, int end,
OrderByComparator orderByComparator) {
return findByCompanyId(companyId, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where companyId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param companyId the company ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByCompanyId(
long companyId, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByCompanyId;
finderArgs = new Object[] {companyId};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByCompanyId;
finderArgs = new Object[] {
companyId, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (companyId != journalArticle.getCompanyId()) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(companyId);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where companyId = ?.
*
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByCompanyId_First(
long companyId, OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByCompanyId_First(
companyId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("companyId=");
sb.append(companyId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where companyId = ?.
*
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByCompanyId_First(
long companyId, OrderByComparator orderByComparator) {
List list = findByCompanyId(
companyId, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where companyId = ?.
*
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByCompanyId_Last(
long companyId, OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByCompanyId_Last(
companyId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("companyId=");
sb.append(companyId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where companyId = ?.
*
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByCompanyId_Last(
long companyId, OrderByComparator orderByComparator) {
int count = countByCompanyId(companyId);
if (count == 0) {
return null;
}
List list = findByCompanyId(
companyId, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where companyId = ?.
*
* @param id the primary key of the current journal article
* @param companyId the company ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByCompanyId_PrevAndNext(
long id, long companyId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByCompanyId_PrevAndNext(
session, journalArticle, companyId, orderByComparator, true);
array[1] = journalArticle;
array[2] = getByCompanyId_PrevAndNext(
session, journalArticle, companyId, orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByCompanyId_PrevAndNext(
Session session, JournalArticle journalArticle, long companyId,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(companyId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where companyId = ? from the database.
*
* @param companyId the company ID
*/
@Override
public void removeByCompanyId(long companyId) {
for (JournalArticle journalArticle :
findByCompanyId(
companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where companyId = ?.
*
* @param companyId the company ID
* @return the number of matching journal articles
*/
@Override
public int countByCompanyId(long companyId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByCompanyId;
Object[] finderArgs = new Object[] {companyId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(companyId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_COMPANYID_COMPANYID_2 =
"journalArticle.companyId = ?";
private FinderPath _finderPathWithPaginationFindByDDMStructureId;
private FinderPath _finderPathWithoutPaginationFindByDDMStructureId;
private FinderPath _finderPathCountByDDMStructureId;
/**
* Returns all the journal articles where DDMStructureId = ?.
*
* @param DDMStructureId the ddm structure ID
* @return the matching journal articles
*/
@Override
public List findByDDMStructureId(long DDMStructureId) {
return findByDDMStructureId(
DDMStructureId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where DDMStructureId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param DDMStructureId the ddm structure ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByDDMStructureId(
long DDMStructureId, int start, int end) {
return findByDDMStructureId(DDMStructureId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where DDMStructureId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param DDMStructureId the ddm structure ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByDDMStructureId(
long DDMStructureId, int start, int end,
OrderByComparator orderByComparator) {
return findByDDMStructureId(
DDMStructureId, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where DDMStructureId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param DDMStructureId the ddm structure ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByDDMStructureId(
long DDMStructureId, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath =
_finderPathWithoutPaginationFindByDDMStructureId;
finderArgs = new Object[] {DDMStructureId};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByDDMStructureId;
finderArgs = new Object[] {
DDMStructureId, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (DDMStructureId !=
journalArticle.getDDMStructureId()) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_DDMSTRUCTUREID_DDMSTRUCTUREID_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(DDMStructureId);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where DDMStructureId = ?.
*
* @param DDMStructureId the ddm structure ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByDDMStructureId_First(
long DDMStructureId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByDDMStructureId_First(
DDMStructureId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("DDMStructureId=");
sb.append(DDMStructureId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where DDMStructureId = ?.
*
* @param DDMStructureId the ddm structure ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByDDMStructureId_First(
long DDMStructureId,
OrderByComparator orderByComparator) {
List list = findByDDMStructureId(
DDMStructureId, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where DDMStructureId = ?.
*
* @param DDMStructureId the ddm structure ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByDDMStructureId_Last(
long DDMStructureId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByDDMStructureId_Last(
DDMStructureId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("DDMStructureId=");
sb.append(DDMStructureId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where DDMStructureId = ?.
*
* @param DDMStructureId the ddm structure ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByDDMStructureId_Last(
long DDMStructureId,
OrderByComparator orderByComparator) {
int count = countByDDMStructureId(DDMStructureId);
if (count == 0) {
return null;
}
List list = findByDDMStructureId(
DDMStructureId, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where DDMStructureId = ?.
*
* @param id the primary key of the current journal article
* @param DDMStructureId the ddm structure ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByDDMStructureId_PrevAndNext(
long id, long DDMStructureId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByDDMStructureId_PrevAndNext(
session, journalArticle, DDMStructureId, orderByComparator,
true);
array[1] = journalArticle;
array[2] = getByDDMStructureId_PrevAndNext(
session, journalArticle, DDMStructureId, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByDDMStructureId_PrevAndNext(
Session session, JournalArticle journalArticle, long DDMStructureId,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_DDMSTRUCTUREID_DDMSTRUCTUREID_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(DDMStructureId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where DDMStructureId = ? from the database.
*
* @param DDMStructureId the ddm structure ID
*/
@Override
public void removeByDDMStructureId(long DDMStructureId) {
for (JournalArticle journalArticle :
findByDDMStructureId(
DDMStructureId, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where DDMStructureId = ?.
*
* @param DDMStructureId the ddm structure ID
* @return the number of matching journal articles
*/
@Override
public int countByDDMStructureId(long DDMStructureId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByDDMStructureId;
Object[] finderArgs = new Object[] {DDMStructureId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_DDMSTRUCTUREID_DDMSTRUCTUREID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(DDMStructureId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_DDMSTRUCTUREID_DDMSTRUCTUREID_2 =
"journalArticle.DDMStructureId = ?";
private FinderPath _finderPathWithPaginationFindByDDMTemplateKey;
private FinderPath _finderPathWithoutPaginationFindByDDMTemplateKey;
private FinderPath _finderPathCountByDDMTemplateKey;
/**
* Returns all the journal articles where DDMTemplateKey = ?.
*
* @param DDMTemplateKey the ddm template key
* @return the matching journal articles
*/
@Override
public List findByDDMTemplateKey(String DDMTemplateKey) {
return findByDDMTemplateKey(
DDMTemplateKey, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where DDMTemplateKey = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param DDMTemplateKey the ddm template key
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByDDMTemplateKey(
String DDMTemplateKey, int start, int end) {
return findByDDMTemplateKey(DDMTemplateKey, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where DDMTemplateKey = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param DDMTemplateKey the ddm template key
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByDDMTemplateKey(
String DDMTemplateKey, int start, int end,
OrderByComparator orderByComparator) {
return findByDDMTemplateKey(
DDMTemplateKey, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where DDMTemplateKey = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param DDMTemplateKey the ddm template key
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByDDMTemplateKey(
String DDMTemplateKey, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
DDMTemplateKey = Objects.toString(DDMTemplateKey, "");
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath =
_finderPathWithoutPaginationFindByDDMTemplateKey;
finderArgs = new Object[] {DDMTemplateKey};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByDDMTemplateKey;
finderArgs = new Object[] {
DDMTemplateKey, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (!DDMTemplateKey.equals(
journalArticle.getDDMTemplateKey())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindDDMTemplateKey = false;
if (DDMTemplateKey.isEmpty()) {
sb.append(_FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_3);
}
else {
bindDDMTemplateKey = true;
sb.append(_FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_2);
}
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindDDMTemplateKey) {
queryPos.add(DDMTemplateKey);
}
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where DDMTemplateKey = ?.
*
* @param DDMTemplateKey the ddm template key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByDDMTemplateKey_First(
String DDMTemplateKey,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByDDMTemplateKey_First(
DDMTemplateKey, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("DDMTemplateKey=");
sb.append(DDMTemplateKey);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where DDMTemplateKey = ?.
*
* @param DDMTemplateKey the ddm template key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByDDMTemplateKey_First(
String DDMTemplateKey,
OrderByComparator orderByComparator) {
List list = findByDDMTemplateKey(
DDMTemplateKey, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where DDMTemplateKey = ?.
*
* @param DDMTemplateKey the ddm template key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByDDMTemplateKey_Last(
String DDMTemplateKey,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByDDMTemplateKey_Last(
DDMTemplateKey, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("DDMTemplateKey=");
sb.append(DDMTemplateKey);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where DDMTemplateKey = ?.
*
* @param DDMTemplateKey the ddm template key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByDDMTemplateKey_Last(
String DDMTemplateKey,
OrderByComparator orderByComparator) {
int count = countByDDMTemplateKey(DDMTemplateKey);
if (count == 0) {
return null;
}
List list = findByDDMTemplateKey(
DDMTemplateKey, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where DDMTemplateKey = ?.
*
* @param id the primary key of the current journal article
* @param DDMTemplateKey the ddm template key
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByDDMTemplateKey_PrevAndNext(
long id, String DDMTemplateKey,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
DDMTemplateKey = Objects.toString(DDMTemplateKey, "");
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByDDMTemplateKey_PrevAndNext(
session, journalArticle, DDMTemplateKey, orderByComparator,
true);
array[1] = journalArticle;
array[2] = getByDDMTemplateKey_PrevAndNext(
session, journalArticle, DDMTemplateKey, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByDDMTemplateKey_PrevAndNext(
Session session, JournalArticle journalArticle, String DDMTemplateKey,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindDDMTemplateKey = false;
if (DDMTemplateKey.isEmpty()) {
sb.append(_FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_3);
}
else {
bindDDMTemplateKey = true;
sb.append(_FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_2);
}
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindDDMTemplateKey) {
queryPos.add(DDMTemplateKey);
}
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where DDMTemplateKey = ? from the database.
*
* @param DDMTemplateKey the ddm template key
*/
@Override
public void removeByDDMTemplateKey(String DDMTemplateKey) {
for (JournalArticle journalArticle :
findByDDMTemplateKey(
DDMTemplateKey, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where DDMTemplateKey = ?.
*
* @param DDMTemplateKey the ddm template key
* @return the number of matching journal articles
*/
@Override
public int countByDDMTemplateKey(String DDMTemplateKey) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
DDMTemplateKey = Objects.toString(DDMTemplateKey, "");
FinderPath finderPath = _finderPathCountByDDMTemplateKey;
Object[] finderArgs = new Object[] {DDMTemplateKey};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
boolean bindDDMTemplateKey = false;
if (DDMTemplateKey.isEmpty()) {
sb.append(_FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_3);
}
else {
bindDDMTemplateKey = true;
sb.append(_FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_2);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindDDMTemplateKey) {
queryPos.add(DDMTemplateKey);
}
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_2 =
"journalArticle.DDMTemplateKey = ?";
private static final String _FINDER_COLUMN_DDMTEMPLATEKEY_DDMTEMPLATEKEY_3 =
"(journalArticle.DDMTemplateKey IS NULL OR journalArticle.DDMTemplateKey = '')";
private FinderPath _finderPathWithPaginationFindByLayoutUuid;
private FinderPath _finderPathWithoutPaginationFindByLayoutUuid;
private FinderPath _finderPathCountByLayoutUuid;
/**
* Returns all the journal articles where layoutUuid = ?.
*
* @param layoutUuid the layout uuid
* @return the matching journal articles
*/
@Override
public List findByLayoutUuid(String layoutUuid) {
return findByLayoutUuid(
layoutUuid, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where layoutUuid = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param layoutUuid the layout uuid
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByLayoutUuid(
String layoutUuid, int start, int end) {
return findByLayoutUuid(layoutUuid, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where layoutUuid = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param layoutUuid the layout uuid
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByLayoutUuid(
String layoutUuid, int start, int end,
OrderByComparator orderByComparator) {
return findByLayoutUuid(
layoutUuid, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where layoutUuid = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param layoutUuid the layout uuid
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByLayoutUuid(
String layoutUuid, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
layoutUuid = Objects.toString(layoutUuid, "");
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByLayoutUuid;
finderArgs = new Object[] {layoutUuid};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByLayoutUuid;
finderArgs = new Object[] {
layoutUuid, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (!layoutUuid.equals(
journalArticle.getLayoutUuid())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindLayoutUuid = false;
if (layoutUuid.isEmpty()) {
sb.append(_FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_3);
}
else {
bindLayoutUuid = true;
sb.append(_FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_2);
}
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindLayoutUuid) {
queryPos.add(layoutUuid);
}
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where layoutUuid = ?.
*
* @param layoutUuid the layout uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByLayoutUuid_First(
String layoutUuid,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByLayoutUuid_First(
layoutUuid, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("layoutUuid=");
sb.append(layoutUuid);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where layoutUuid = ?.
*
* @param layoutUuid the layout uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByLayoutUuid_First(
String layoutUuid,
OrderByComparator orderByComparator) {
List list = findByLayoutUuid(
layoutUuid, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where layoutUuid = ?.
*
* @param layoutUuid the layout uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByLayoutUuid_Last(
String layoutUuid,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByLayoutUuid_Last(
layoutUuid, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("layoutUuid=");
sb.append(layoutUuid);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where layoutUuid = ?.
*
* @param layoutUuid the layout uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByLayoutUuid_Last(
String layoutUuid,
OrderByComparator orderByComparator) {
int count = countByLayoutUuid(layoutUuid);
if (count == 0) {
return null;
}
List list = findByLayoutUuid(
layoutUuid, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where layoutUuid = ?.
*
* @param id the primary key of the current journal article
* @param layoutUuid the layout uuid
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByLayoutUuid_PrevAndNext(
long id, String layoutUuid,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
layoutUuid = Objects.toString(layoutUuid, "");
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByLayoutUuid_PrevAndNext(
session, journalArticle, layoutUuid, orderByComparator, true);
array[1] = journalArticle;
array[2] = getByLayoutUuid_PrevAndNext(
session, journalArticle, layoutUuid, orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByLayoutUuid_PrevAndNext(
Session session, JournalArticle journalArticle, String layoutUuid,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
boolean bindLayoutUuid = false;
if (layoutUuid.isEmpty()) {
sb.append(_FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_3);
}
else {
bindLayoutUuid = true;
sb.append(_FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_2);
}
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindLayoutUuid) {
queryPos.add(layoutUuid);
}
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where layoutUuid = ? from the database.
*
* @param layoutUuid the layout uuid
*/
@Override
public void removeByLayoutUuid(String layoutUuid) {
for (JournalArticle journalArticle :
findByLayoutUuid(
layoutUuid, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where layoutUuid = ?.
*
* @param layoutUuid the layout uuid
* @return the number of matching journal articles
*/
@Override
public int countByLayoutUuid(String layoutUuid) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
layoutUuid = Objects.toString(layoutUuid, "");
FinderPath finderPath = _finderPathCountByLayoutUuid;
Object[] finderArgs = new Object[] {layoutUuid};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
boolean bindLayoutUuid = false;
if (layoutUuid.isEmpty()) {
sb.append(_FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_3);
}
else {
bindLayoutUuid = true;
sb.append(_FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_2);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
if (bindLayoutUuid) {
queryPos.add(layoutUuid);
}
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_2 =
"journalArticle.layoutUuid = ?";
private static final String _FINDER_COLUMN_LAYOUTUUID_LAYOUTUUID_3 =
"(journalArticle.layoutUuid IS NULL OR journalArticle.layoutUuid = '')";
private FinderPath _finderPathWithPaginationFindBySmallImageId;
private FinderPath _finderPathWithoutPaginationFindBySmallImageId;
private FinderPath _finderPathCountBySmallImageId;
/**
* Returns all the journal articles where smallImageId = ?.
*
* @param smallImageId the small image ID
* @return the matching journal articles
*/
@Override
public List findBySmallImageId(long smallImageId) {
return findBySmallImageId(
smallImageId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where smallImageId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param smallImageId the small image ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findBySmallImageId(
long smallImageId, int start, int end) {
return findBySmallImageId(smallImageId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where smallImageId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param smallImageId the small image ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findBySmallImageId(
long smallImageId, int start, int end,
OrderByComparator orderByComparator) {
return findBySmallImageId(
smallImageId, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where smallImageId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param smallImageId the small image ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findBySmallImageId(
long smallImageId, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindBySmallImageId;
finderArgs = new Object[] {smallImageId};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindBySmallImageId;
finderArgs = new Object[] {
smallImageId, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if (smallImageId != journalArticle.getSmallImageId()) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
3 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_SMALLIMAGEID_SMALLIMAGEID_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(smallImageId);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where smallImageId = ?.
*
* @param smallImageId the small image ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findBySmallImageId_First(
long smallImageId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchBySmallImageId_First(
smallImageId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("smallImageId=");
sb.append(smallImageId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where smallImageId = ?.
*
* @param smallImageId the small image ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchBySmallImageId_First(
long smallImageId,
OrderByComparator orderByComparator) {
List list = findBySmallImageId(
smallImageId, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where smallImageId = ?.
*
* @param smallImageId the small image ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findBySmallImageId_Last(
long smallImageId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchBySmallImageId_Last(
smallImageId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(4);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("smallImageId=");
sb.append(smallImageId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where smallImageId = ?.
*
* @param smallImageId the small image ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchBySmallImageId_Last(
long smallImageId,
OrderByComparator orderByComparator) {
int count = countBySmallImageId(smallImageId);
if (count == 0) {
return null;
}
List list = findBySmallImageId(
smallImageId, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where smallImageId = ?.
*
* @param id the primary key of the current journal article
* @param smallImageId the small image ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findBySmallImageId_PrevAndNext(
long id, long smallImageId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getBySmallImageId_PrevAndNext(
session, journalArticle, smallImageId, orderByComparator, true);
array[1] = journalArticle;
array[2] = getBySmallImageId_PrevAndNext(
session, journalArticle, smallImageId, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getBySmallImageId_PrevAndNext(
Session session, JournalArticle journalArticle, long smallImageId,
OrderByComparator orderByComparator, boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(3);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_SMALLIMAGEID_SMALLIMAGEID_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(smallImageId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where smallImageId = ? from the database.
*
* @param smallImageId the small image ID
*/
@Override
public void removeBySmallImageId(long smallImageId) {
for (JournalArticle journalArticle :
findBySmallImageId(
smallImageId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where smallImageId = ?.
*
* @param smallImageId the small image ID
* @return the number of matching journal articles
*/
@Override
public int countBySmallImageId(long smallImageId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountBySmallImageId;
Object[] finderArgs = new Object[] {smallImageId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(2);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_SMALLIMAGEID_SMALLIMAGEID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(smallImageId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_SMALLIMAGEID_SMALLIMAGEID_2 =
"journalArticle.smallImageId = ?";
private FinderPath _finderPathWithPaginationFindByR_I;
private FinderPath _finderPathWithoutPaginationFindByR_I;
private FinderPath _finderPathCountByR_I;
/**
* Returns all the journal articles where resourcePrimKey = ? and indexable = ?.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @return the matching journal articles
*/
@Override
public List findByR_I(
long resourcePrimKey, boolean indexable) {
return findByR_I(
resourcePrimKey, indexable, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null);
}
/**
* Returns a range of all the journal articles where resourcePrimKey = ? and indexable = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByR_I(
long resourcePrimKey, boolean indexable, int start, int end) {
return findByR_I(resourcePrimKey, indexable, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ? and indexable = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByR_I(
long resourcePrimKey, boolean indexable, int start, int end,
OrderByComparator orderByComparator) {
return findByR_I(
resourcePrimKey, indexable, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ? and indexable = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByR_I(
long resourcePrimKey, boolean indexable, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByR_I;
finderArgs = new Object[] {resourcePrimKey, indexable};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByR_I;
finderArgs = new Object[] {
resourcePrimKey, indexable, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if ((resourcePrimKey !=
journalArticle.getResourcePrimKey()) ||
(indexable != journalArticle.isIndexable())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_I_RESOURCEPRIMKEY_2);
sb.append(_FINDER_COLUMN_R_I_INDEXABLE_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
queryPos.add(indexable);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where resourcePrimKey = ? and indexable = ?.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByR_I_First(
long resourcePrimKey, boolean indexable,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByR_I_First(
resourcePrimKey, indexable, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("resourcePrimKey=");
sb.append(resourcePrimKey);
sb.append(", indexable=");
sb.append(indexable);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where resourcePrimKey = ? and indexable = ?.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByR_I_First(
long resourcePrimKey, boolean indexable,
OrderByComparator orderByComparator) {
List list = findByR_I(
resourcePrimKey, indexable, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where resourcePrimKey = ? and indexable = ?.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByR_I_Last(
long resourcePrimKey, boolean indexable,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByR_I_Last(
resourcePrimKey, indexable, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("resourcePrimKey=");
sb.append(resourcePrimKey);
sb.append(", indexable=");
sb.append(indexable);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where resourcePrimKey = ? and indexable = ?.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByR_I_Last(
long resourcePrimKey, boolean indexable,
OrderByComparator orderByComparator) {
int count = countByR_I(resourcePrimKey, indexable);
if (count == 0) {
return null;
}
List list = findByR_I(
resourcePrimKey, indexable, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where resourcePrimKey = ? and indexable = ?.
*
* @param id the primary key of the current journal article
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByR_I_PrevAndNext(
long id, long resourcePrimKey, boolean indexable,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByR_I_PrevAndNext(
session, journalArticle, resourcePrimKey, indexable,
orderByComparator, true);
array[1] = journalArticle;
array[2] = getByR_I_PrevAndNext(
session, journalArticle, resourcePrimKey, indexable,
orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByR_I_PrevAndNext(
Session session, JournalArticle journalArticle, long resourcePrimKey,
boolean indexable, OrderByComparator orderByComparator,
boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
5 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_I_RESOURCEPRIMKEY_2);
sb.append(_FINDER_COLUMN_R_I_INDEXABLE_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
queryPos.add(indexable);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where resourcePrimKey = ? and indexable = ? from the database.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
*/
@Override
public void removeByR_I(long resourcePrimKey, boolean indexable) {
for (JournalArticle journalArticle :
findByR_I(
resourcePrimKey, indexable, QueryUtil.ALL_POS,
QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where resourcePrimKey = ? and indexable = ?.
*
* @param resourcePrimKey the resource prim key
* @param indexable the indexable
* @return the number of matching journal articles
*/
@Override
public int countByR_I(long resourcePrimKey, boolean indexable) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByR_I;
Object[] finderArgs = new Object[] {resourcePrimKey, indexable};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(3);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_I_RESOURCEPRIMKEY_2);
sb.append(_FINDER_COLUMN_R_I_INDEXABLE_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
queryPos.add(indexable);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_R_I_RESOURCEPRIMKEY_2 =
"journalArticle.resourcePrimKey = ? AND ";
private static final String _FINDER_COLUMN_R_I_INDEXABLE_2 =
"journalArticle.indexable = ?";
private FinderPath _finderPathWithPaginationFindByR_ST;
private FinderPath _finderPathWithoutPaginationFindByR_ST;
private FinderPath _finderPathCountByR_ST;
private FinderPath _finderPathWithPaginationCountByR_ST;
/**
* Returns all the journal articles where resourcePrimKey = ? and status = ?.
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @return the matching journal articles
*/
@Override
public List findByR_ST(long resourcePrimKey, int status) {
return findByR_ST(
resourcePrimKey, status, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null);
}
/**
* Returns a range of all the journal articles where resourcePrimKey = ? and status = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int status, int start, int end) {
return findByR_ST(resourcePrimKey, status, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ? and status = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int status, int start, int end,
OrderByComparator orderByComparator) {
return findByR_ST(
resourcePrimKey, status, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ? and status = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int status, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByR_ST;
finderArgs = new Object[] {resourcePrimKey, status};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByR_ST;
finderArgs = new Object[] {
resourcePrimKey, status, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if ((resourcePrimKey !=
journalArticle.getResourcePrimKey()) ||
(status != journalArticle.getStatus())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_ST_RESOURCEPRIMKEY_2);
sb.append(_FINDER_COLUMN_R_ST_STATUS_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
queryPos.add(status);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where resourcePrimKey = ? and status = ?.
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByR_ST_First(
long resourcePrimKey, int status,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByR_ST_First(
resourcePrimKey, status, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("resourcePrimKey=");
sb.append(resourcePrimKey);
sb.append(", status=");
sb.append(status);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where resourcePrimKey = ? and status = ?.
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByR_ST_First(
long resourcePrimKey, int status,
OrderByComparator orderByComparator) {
List list = findByR_ST(
resourcePrimKey, status, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where resourcePrimKey = ? and status = ?.
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByR_ST_Last(
long resourcePrimKey, int status,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByR_ST_Last(
resourcePrimKey, status, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("resourcePrimKey=");
sb.append(resourcePrimKey);
sb.append(", status=");
sb.append(status);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where resourcePrimKey = ? and status = ?.
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByR_ST_Last(
long resourcePrimKey, int status,
OrderByComparator orderByComparator) {
int count = countByR_ST(resourcePrimKey, status);
if (count == 0) {
return null;
}
List list = findByR_ST(
resourcePrimKey, status, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where resourcePrimKey = ? and status = ?.
*
* @param id the primary key of the current journal article
* @param resourcePrimKey the resource prim key
* @param status the status
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByR_ST_PrevAndNext(
long id, long resourcePrimKey, int status,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByR_ST_PrevAndNext(
session, journalArticle, resourcePrimKey, status,
orderByComparator, true);
array[1] = journalArticle;
array[2] = getByR_ST_PrevAndNext(
session, journalArticle, resourcePrimKey, status,
orderByComparator, false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByR_ST_PrevAndNext(
Session session, JournalArticle journalArticle, long resourcePrimKey,
int status, OrderByComparator orderByComparator,
boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
5 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_ST_RESOURCEPRIMKEY_2);
sb.append(_FINDER_COLUMN_R_ST_STATUS_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
queryPos.add(status);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Returns all the journal articles where resourcePrimKey = ? and status = any ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param statuses the statuses
* @return the matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int[] statuses) {
return findByR_ST(
resourcePrimKey, statuses, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null);
}
/**
* Returns a range of all the journal articles where resourcePrimKey = ? and status = any ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param statuses the statuses
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int[] statuses, int start, int end) {
return findByR_ST(resourcePrimKey, statuses, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ? and status = any ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param statuses the statuses
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int[] statuses, int start, int end,
OrderByComparator orderByComparator) {
return findByR_ST(
resourcePrimKey, statuses, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where resourcePrimKey = ? and status = ?, optionally using the finder cache.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param resourcePrimKey the resource prim key
* @param statuses the statuses
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByR_ST(
long resourcePrimKey, int[] statuses, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
if (statuses == null) {
statuses = new int[0];
}
else if (statuses.length > 1) {
statuses = ArrayUtil.sortedUnique(statuses);
}
if (statuses.length == 1) {
return findByR_ST(
resourcePrimKey, statuses[0], start, end, orderByComparator);
}
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderArgs = new Object[] {
resourcePrimKey, StringUtil.merge(statuses)
};
}
}
else if (useFinderCache) {
finderArgs = new Object[] {
resourcePrimKey, StringUtil.merge(statuses), start, end,
orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
_finderPathWithPaginationFindByR_ST, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if ((resourcePrimKey !=
journalArticle.getResourcePrimKey()) ||
!ArrayUtil.contains(
statuses, journalArticle.getStatus())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = new StringBundler();
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_ST_RESOURCEPRIMKEY_2);
if (statuses.length > 0) {
sb.append("(");
sb.append(_FINDER_COLUMN_R_ST_STATUS_7);
sb.append(StringUtil.merge(statuses));
sb.append(")");
sb.append(")");
}
sb.setStringAt(
removeConjunction(sb.stringAt(sb.index() - 1)),
sb.index() - 1);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(
_finderPathWithPaginationFindByR_ST, finderArgs,
list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Removes all the journal articles where resourcePrimKey = ? and status = ? from the database.
*
* @param resourcePrimKey the resource prim key
* @param status the status
*/
@Override
public void removeByR_ST(long resourcePrimKey, int status) {
for (JournalArticle journalArticle :
findByR_ST(
resourcePrimKey, status, QueryUtil.ALL_POS,
QueryUtil.ALL_POS, null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where resourcePrimKey = ? and status = ?.
*
* @param resourcePrimKey the resource prim key
* @param status the status
* @return the number of matching journal articles
*/
@Override
public int countByR_ST(long resourcePrimKey, int status) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByR_ST;
Object[] finderArgs = new Object[] {resourcePrimKey, status};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(3);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_ST_RESOURCEPRIMKEY_2);
sb.append(_FINDER_COLUMN_R_ST_STATUS_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
queryPos.add(status);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
/**
* Returns the number of journal articles where resourcePrimKey = ? and status = any ?.
*
* @param resourcePrimKey the resource prim key
* @param statuses the statuses
* @return the number of matching journal articles
*/
@Override
public int countByR_ST(long resourcePrimKey, int[] statuses) {
if (statuses == null) {
statuses = new int[0];
}
else if (statuses.length > 1) {
statuses = ArrayUtil.sortedUnique(statuses);
}
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
Object[] finderArgs = new Object[] {
resourcePrimKey, StringUtil.merge(statuses)
};
Long count = (Long)finderCache.getResult(
_finderPathWithPaginationCountByR_ST, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler();
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_R_ST_RESOURCEPRIMKEY_2);
if (statuses.length > 0) {
sb.append("(");
sb.append(_FINDER_COLUMN_R_ST_STATUS_7);
sb.append(StringUtil.merge(statuses));
sb.append(")");
sb.append(")");
}
sb.setStringAt(
removeConjunction(sb.stringAt(sb.index() - 1)),
sb.index() - 1);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(resourcePrimKey);
count = (Long)query.uniqueResult();
finderCache.putResult(
_finderPathWithPaginationCountByR_ST, finderArgs,
count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
private static final String _FINDER_COLUMN_R_ST_RESOURCEPRIMKEY_2 =
"journalArticle.resourcePrimKey = ? AND ";
private static final String _FINDER_COLUMN_R_ST_STATUS_2 =
"journalArticle.status = ?";
private static final String _FINDER_COLUMN_R_ST_STATUS_7 =
"journalArticle.status IN (";
private FinderPath _finderPathWithPaginationFindByG_U;
private FinderPath _finderPathWithoutPaginationFindByG_U;
private FinderPath _finderPathCountByG_U;
/**
* Returns all the journal articles where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @return the matching journal articles
*/
@Override
public List findByG_U(long groupId, long userId) {
return findByG_U(
groupId, userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where groupId = ? and userId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param userId the user ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByG_U(
long groupId, long userId, int start, int end) {
return findByG_U(groupId, userId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where groupId = ? and userId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param userId the user ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByG_U(
long groupId, long userId, int start, int end,
OrderByComparator orderByComparator) {
return findByG_U(groupId, userId, start, end, orderByComparator, true);
}
/**
* Returns an ordered range of all the journal articles where groupId = ? and userId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param userId the user ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByG_U(
long groupId, long userId, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByG_U;
finderArgs = new Object[] {groupId, userId};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByG_U;
finderArgs = new Object[] {
groupId, userId, start, end, orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List)finderCache.getResult(
finderPath, finderArgs, this);
if ((list != null) && !list.isEmpty()) {
for (JournalArticle journalArticle : list) {
if ((groupId != journalArticle.getGroupId()) ||
(userId != journalArticle.getUserId())) {
list = null;
break;
}
}
}
}
if (list == null) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_G_U_GROUPID_2);
sb.append(_FINDER_COLUMN_G_U_USERID_2);
if (orderByComparator != null) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupId);
queryPos.add(userId);
list = (List)QueryUtil.list(
query, getDialect(), start, end);
cacheResult(list);
if (useFinderCache) {
finderCache.putResult(finderPath, finderArgs, list);
}
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return list;
}
}
/**
* Returns the first journal article in the ordered set where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByG_U_First(
long groupId, long userId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByG_U_First(
groupId, userId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("groupId=");
sb.append(groupId);
sb.append(", userId=");
sb.append(userId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the first journal article in the ordered set where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the first matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByG_U_First(
long groupId, long userId,
OrderByComparator orderByComparator) {
List list = findByG_U(
groupId, userId, 0, 1, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the last journal article in the ordered set where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article
* @throws NoSuchArticleException if a matching journal article could not be found
*/
@Override
public JournalArticle findByG_U_Last(
long groupId, long userId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = fetchByG_U_Last(
groupId, userId, orderByComparator);
if (journalArticle != null) {
return journalArticle;
}
StringBundler sb = new StringBundler(6);
sb.append(_NO_SUCH_ENTITY_WITH_KEY);
sb.append("groupId=");
sb.append(groupId);
sb.append(", userId=");
sb.append(userId);
sb.append("}");
throw new NoSuchArticleException(sb.toString());
}
/**
* Returns the last journal article in the ordered set where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the last matching journal article, or null
if a matching journal article could not be found
*/
@Override
public JournalArticle fetchByG_U_Last(
long groupId, long userId,
OrderByComparator orderByComparator) {
int count = countByG_U(groupId, userId);
if (count == 0) {
return null;
}
List list = findByG_U(
groupId, userId, count - 1, count, orderByComparator);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
/**
* Returns the journal articles before and after the current journal article in the ordered set where groupId = ? and userId = ?.
*
* @param id the primary key of the current journal article
* @param groupId the group ID
* @param userId the user ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] findByG_U_PrevAndNext(
long id, long groupId, long userId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = getByG_U_PrevAndNext(
session, journalArticle, groupId, userId, orderByComparator,
true);
array[1] = journalArticle;
array[2] = getByG_U_PrevAndNext(
session, journalArticle, groupId, userId, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle getByG_U_PrevAndNext(
Session session, JournalArticle journalArticle, long groupId,
long userId, OrderByComparator orderByComparator,
boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
5 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(4);
}
sb.append(_SQL_SELECT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_G_U_GROUPID_2);
sb.append(_FINDER_COLUMN_G_U_USERID_2);
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByConditionFields[i]);
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
sb.append(_ORDER_BY_ENTITY_ALIAS);
sb.append(orderByFields[i]);
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
String sql = sb.toString();
Query query = session.createQuery(sql);
query.setFirstResult(0);
query.setMaxResults(2);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupId);
queryPos.add(userId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = query.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Returns all the journal articles that the user has permission to view where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @return the matching journal articles that the user has permission to view
*/
@Override
public List filterFindByG_U(long groupId, long userId) {
return filterFindByG_U(
groupId, userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles that the user has permission to view where groupId = ? and userId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param userId the user ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles that the user has permission to view
*/
@Override
public List filterFindByG_U(
long groupId, long userId, int start, int end) {
return filterFindByG_U(groupId, userId, start, end, null);
}
/**
* Returns an ordered range of all the journal articles that the user has permissions to view where groupId = ? and userId = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param userId the user ID
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles that the user has permission to view
*/
@Override
public List filterFindByG_U(
long groupId, long userId, int start, int end,
OrderByComparator orderByComparator) {
if (!InlineSQLHelperUtil.isEnabled(groupId)) {
return findByG_U(groupId, userId, start, end, orderByComparator);
}
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
4 + (orderByComparator.getOrderByFields().length * 2));
}
else {
sb = new StringBundler(5);
}
if (getDB().isSupportsInlineDistinct()) {
sb.append(_FILTER_SQL_SELECT_JOURNALARTICLE_WHERE);
}
else {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_1);
}
sb.append(_FINDER_COLUMN_G_U_GROUPID_2);
sb.append(_FINDER_COLUMN_G_U_USERID_2);
if (!getDB().isSupportsInlineDistinct()) {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_2);
}
if (orderByComparator != null) {
if (getDB().isSupportsInlineDistinct()) {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_ALIAS, orderByComparator, true);
}
else {
appendOrderByComparator(
sb, _ORDER_BY_ENTITY_TABLE, orderByComparator, true);
}
}
else {
if (getDB().isSupportsInlineDistinct()) {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_SQL);
}
}
String sql = InlineSQLHelperUtil.replacePermissionCheck(
sb.toString(), JournalArticle.class.getName(),
_FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);
Session session = null;
try {
session = openSession();
SQLQuery sqlQuery = session.createSynchronizedSQLQuery(sql);
if (getDB().isSupportsInlineDistinct()) {
sqlQuery.addEntity(
_FILTER_ENTITY_ALIAS, JournalArticleImpl.class);
}
else {
sqlQuery.addEntity(
_FILTER_ENTITY_TABLE, JournalArticleImpl.class);
}
QueryPos queryPos = QueryPos.getInstance(sqlQuery);
queryPos.add(groupId);
queryPos.add(userId);
return (List)QueryUtil.list(
sqlQuery, getDialect(), start, end);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
/**
* Returns the journal articles before and after the current journal article in the ordered set of journal articles that the user has permission to view where groupId = ? and userId = ?.
*
* @param id the primary key of the current journal article
* @param groupId the group ID
* @param userId the user ID
* @param orderByComparator the comparator to order the set by (optionally null
)
* @return the previous, current, and next journal article
* @throws NoSuchArticleException if a journal article with the primary key could not be found
*/
@Override
public JournalArticle[] filterFindByG_U_PrevAndNext(
long id, long groupId, long userId,
OrderByComparator orderByComparator)
throws NoSuchArticleException {
if (!InlineSQLHelperUtil.isEnabled(groupId)) {
return findByG_U_PrevAndNext(
id, groupId, userId, orderByComparator);
}
JournalArticle journalArticle = findByPrimaryKey(id);
Session session = null;
try {
session = openSession();
JournalArticle[] array = new JournalArticleImpl[3];
array[0] = filterGetByG_U_PrevAndNext(
session, journalArticle, groupId, userId, orderByComparator,
true);
array[1] = journalArticle;
array[2] = filterGetByG_U_PrevAndNext(
session, journalArticle, groupId, userId, orderByComparator,
false);
return array;
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
protected JournalArticle filterGetByG_U_PrevAndNext(
Session session, JournalArticle journalArticle, long groupId,
long userId, OrderByComparator orderByComparator,
boolean previous) {
StringBundler sb = null;
if (orderByComparator != null) {
sb = new StringBundler(
6 + (orderByComparator.getOrderByConditionFields().length * 3) +
(orderByComparator.getOrderByFields().length * 3));
}
else {
sb = new StringBundler(5);
}
if (getDB().isSupportsInlineDistinct()) {
sb.append(_FILTER_SQL_SELECT_JOURNALARTICLE_WHERE);
}
else {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_1);
}
sb.append(_FINDER_COLUMN_G_U_GROUPID_2);
sb.append(_FINDER_COLUMN_G_U_USERID_2);
if (!getDB().isSupportsInlineDistinct()) {
sb.append(
_FILTER_SQL_SELECT_JOURNALARTICLE_NO_INLINE_DISTINCT_WHERE_2);
}
if (orderByComparator != null) {
String[] orderByConditionFields =
orderByComparator.getOrderByConditionFields();
if (orderByConditionFields.length > 0) {
sb.append(WHERE_AND);
}
for (int i = 0; i < orderByConditionFields.length; i++) {
if (getDB().isSupportsInlineDistinct()) {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_ALIAS, orderByConditionFields[i],
true));
}
else {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_TABLE, orderByConditionFields[i],
true));
}
if ((i + 1) < orderByConditionFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN_HAS_NEXT);
}
else {
sb.append(WHERE_LESSER_THAN_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(WHERE_GREATER_THAN);
}
else {
sb.append(WHERE_LESSER_THAN);
}
}
}
sb.append(ORDER_BY_CLAUSE);
String[] orderByFields = orderByComparator.getOrderByFields();
for (int i = 0; i < orderByFields.length; i++) {
if (getDB().isSupportsInlineDistinct()) {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_ALIAS, orderByFields[i], true));
}
else {
sb.append(
getColumnName(
_ORDER_BY_ENTITY_TABLE, orderByFields[i], true));
}
if ((i + 1) < orderByFields.length) {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC_HAS_NEXT);
}
else {
sb.append(ORDER_BY_DESC_HAS_NEXT);
}
}
else {
if (orderByComparator.isAscending() ^ previous) {
sb.append(ORDER_BY_ASC);
}
else {
sb.append(ORDER_BY_DESC);
}
}
}
}
else {
if (getDB().isSupportsInlineDistinct()) {
sb.append(JournalArticleModelImpl.ORDER_BY_JPQL);
}
else {
sb.append(JournalArticleModelImpl.ORDER_BY_SQL);
}
}
String sql = InlineSQLHelperUtil.replacePermissionCheck(
sb.toString(), JournalArticle.class.getName(),
_FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);
SQLQuery sqlQuery = session.createSynchronizedSQLQuery(sql);
sqlQuery.setFirstResult(0);
sqlQuery.setMaxResults(2);
if (getDB().isSupportsInlineDistinct()) {
sqlQuery.addEntity(_FILTER_ENTITY_ALIAS, JournalArticleImpl.class);
}
else {
sqlQuery.addEntity(_FILTER_ENTITY_TABLE, JournalArticleImpl.class);
}
QueryPos queryPos = QueryPos.getInstance(sqlQuery);
queryPos.add(groupId);
queryPos.add(userId);
if (orderByComparator != null) {
for (Object orderByConditionValue :
orderByComparator.getOrderByConditionValues(
journalArticle)) {
queryPos.add(orderByConditionValue);
}
}
List list = sqlQuery.list();
if (list.size() == 2) {
return list.get(1);
}
else {
return null;
}
}
/**
* Removes all the journal articles where groupId = ? and userId = ? from the database.
*
* @param groupId the group ID
* @param userId the user ID
*/
@Override
public void removeByG_U(long groupId, long userId) {
for (JournalArticle journalArticle :
findByG_U(
groupId, userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
null)) {
remove(journalArticle);
}
}
/**
* Returns the number of journal articles where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @return the number of matching journal articles
*/
@Override
public int countByG_U(long groupId, long userId) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
FinderPath finderPath = _finderPathCountByG_U;
Object[] finderArgs = new Object[] {groupId, userId};
Long count = (Long)finderCache.getResult(
finderPath, finderArgs, this);
if (count == null) {
StringBundler sb = new StringBundler(3);
sb.append(_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_G_U_GROUPID_2);
sb.append(_FINDER_COLUMN_G_U_USERID_2);
String sql = sb.toString();
Session session = null;
try {
session = openSession();
Query query = session.createQuery(sql);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupId);
queryPos.add(userId);
count = (Long)query.uniqueResult();
finderCache.putResult(finderPath, finderArgs, count);
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
return count.intValue();
}
}
/**
* Returns the number of journal articles that the user has permission to view where groupId = ? and userId = ?.
*
* @param groupId the group ID
* @param userId the user ID
* @return the number of matching journal articles that the user has permission to view
*/
@Override
public int filterCountByG_U(long groupId, long userId) {
if (!InlineSQLHelperUtil.isEnabled(groupId)) {
return countByG_U(groupId, userId);
}
StringBundler sb = new StringBundler(3);
sb.append(_FILTER_SQL_COUNT_JOURNALARTICLE_WHERE);
sb.append(_FINDER_COLUMN_G_U_GROUPID_2);
sb.append(_FINDER_COLUMN_G_U_USERID_2);
String sql = InlineSQLHelperUtil.replacePermissionCheck(
sb.toString(), JournalArticle.class.getName(),
_FILTER_ENTITY_TABLE_FILTER_PK_COLUMN, groupId);
Session session = null;
try {
session = openSession();
SQLQuery sqlQuery = session.createSynchronizedSQLQuery(sql);
sqlQuery.addScalar(
COUNT_COLUMN_NAME, com.liferay.portal.kernel.dao.orm.Type.LONG);
QueryPos queryPos = QueryPos.getInstance(sqlQuery);
queryPos.add(groupId);
queryPos.add(userId);
Long count = (Long)sqlQuery.uniqueResult();
return count.intValue();
}
catch (Exception exception) {
throw processException(exception);
}
finally {
closeSession(session);
}
}
private static final String _FINDER_COLUMN_G_U_GROUPID_2 =
"journalArticle.groupId = ? AND ";
private static final String _FINDER_COLUMN_G_U_USERID_2 =
"journalArticle.userId = ?";
private FinderPath _finderPathWithPaginationFindByG_ERC;
private FinderPath _finderPathWithoutPaginationFindByG_ERC;
private FinderPath _finderPathCountByG_ERC;
/**
* Returns all the journal articles where groupId = ? and externalReferenceCode = ?.
*
* @param groupId the group ID
* @param externalReferenceCode the external reference code
* @return the matching journal articles
*/
@Override
public List findByG_ERC(
long groupId, String externalReferenceCode) {
return findByG_ERC(
groupId, externalReferenceCode, QueryUtil.ALL_POS,
QueryUtil.ALL_POS, null);
}
/**
* Returns a range of all the journal articles where groupId = ? and externalReferenceCode = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param externalReferenceCode the external reference code
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @return the range of matching journal articles
*/
@Override
public List findByG_ERC(
long groupId, String externalReferenceCode, int start, int end) {
return findByG_ERC(groupId, externalReferenceCode, start, end, null);
}
/**
* Returns an ordered range of all the journal articles where groupId = ? and externalReferenceCode = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param externalReferenceCode the external reference code
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @return the ordered range of matching journal articles
*/
@Override
public List findByG_ERC(
long groupId, String externalReferenceCode, int start, int end,
OrderByComparator orderByComparator) {
return findByG_ERC(
groupId, externalReferenceCode, start, end, orderByComparator,
true);
}
/**
* Returns an ordered range of all the journal articles where groupId = ? and externalReferenceCode = ?.
*
*
* Useful when paginating results. Returns a maximum of end - start
instances. start
and end
are not primary keys, they are indexes in the result set. Thus, 0
refers to the first result in the set. Setting both start
and end
to QueryUtil#ALL_POS
will return the full result set. If orderByComparator
is specified, then the query will include the given ORDER BY logic. If orderByComparator
is absent, then the query will include the default ORDER BY logic from JournalArticleModelImpl
.
*
*
* @param groupId the group ID
* @param externalReferenceCode the external reference code
* @param start the lower bound of the range of journal articles
* @param end the upper bound of the range of journal articles (not inclusive)
* @param orderByComparator the comparator to order the results by (optionally null
)
* @param useFinderCache whether to use the finder cache
* @return the ordered range of matching journal articles
*/
@Override
public List findByG_ERC(
long groupId, String externalReferenceCode, int start, int end,
OrderByComparator orderByComparator,
boolean useFinderCache) {
try (SafeCloseable safeCloseable =
ctPersistenceHelper.setCTCollectionIdWithSafeCloseable(
JournalArticle.class)) {
externalReferenceCode = Objects.toString(externalReferenceCode, "");
FinderPath finderPath = null;
Object[] finderArgs = null;
if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS) &&
(orderByComparator == null)) {
if (useFinderCache) {
finderPath = _finderPathWithoutPaginationFindByG_ERC;
finderArgs = new Object[] {groupId, externalReferenceCode};
}
}
else if (useFinderCache) {
finderPath = _finderPathWithPaginationFindByG_ERC;
finderArgs = new Object[] {
groupId, externalReferenceCode, start, end,
orderByComparator
};
}
List list = null;
if (useFinderCache) {
list = (List