Example usage for com.liferay.portal.kernel.dao.orm DefaultActionableDynamicQuery REQUIRES_NEW_TRANSACTION_CONFIG

List of usage examples for com.liferay.portal.kernel.dao.orm DefaultActionableDynamicQuery REQUIRES_NEW_TRANSACTION_CONFIG

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.dao.orm DefaultActionableDynamicQuery REQUIRES_NEW_TRANSACTION_CONFIG.

Prototype

TransactionConfig REQUIRES_NEW_TRANSACTION_CONFIG

To view the source code for com.liferay.portal.kernel.dao.orm DefaultActionableDynamicQuery REQUIRES_NEW_TRANSACTION_CONFIG.

Click Source Link

Usage

From source file:com.liferay.trash.service.impl.TrashEntryLocalServiceImpl.java

License:Open Source License

@Override
public void checkEntries() throws PortalException {
    ActionableDynamicQuery actionableDynamicQuery = trashEntryLocalService.getActionableDynamicQuery();

    actionableDynamicQuery.setPerformActionMethod(new ActionableDynamicQuery.PerformActionMethod<TrashEntry>() {

        @Override//w  ww.  j ava2s. c  o  m
        public void performAction(TrashEntry trashEntry) throws PortalException {

            Date createDate = trashEntry.getCreateDate();

            Group group = groupLocalService.fetchGroup(trashEntry.getGroupId());

            if (group == null) {
                return;
            }

            Date date = getMaxAge(group);

            if (createDate.before(date) || !TrashUtil.isTrashEnabled(group)) {

                TrashHandler trashHandler = TrashHandlerRegistryUtil.getTrashHandler(trashEntry.getClassName());

                if (trashHandler != null) {
                    try {
                        trashHandler.deleteTrashEntry(trashEntry.getClassPK());
                    } catch (Exception e) {
                        _log.error(e, e);
                    }
                }
            }
        }

    });
    actionableDynamicQuery.setTransactionConfig(DefaultActionableDynamicQuery.REQUIRES_NEW_TRANSACTION_CONFIG);

    actionableDynamicQuery.performActions();
}