Search in sources :

Example 6 with Status

use of org.broadleafcommerce.common.persistence.Status in project BroadleafCommerce by BroadleafCommerce.

the class IndexFieldCustomPersistenceHandler method remove.

@Override
public void remove(PersistencePackage persistencePackage, DynamicEntityDao dynamicEntityDao, RecordHelper helper) throws ServiceException {
    Entity entity = persistencePackage.getEntity();
    try {
        PersistencePerspective persistencePerspective = persistencePackage.getPersistencePerspective();
        Map<String, FieldMetadata> adminProperties = helper.getSimpleMergedProperties(IndexField.class.getName(), persistencePerspective);
        Object primaryKey = helper.getPrimaryKey(entity, adminProperties);
        Serializable instance = dynamicEntityDao.retrieve(Class.forName(entity.getType()[0]), primaryKey);
        if (instance instanceof Status) {
            ((Status) instance).setArchived('Y');
            dynamicEntityDao.merge(instance);
            return;
        }
    } catch (Exception ex) {
        throw new ServiceException("Unable to perform remove for entity: " + entity.getType()[0], ex);
    }
    super.remove(persistencePackage, dynamicEntityDao, helper);
}
Also used : Status(org.broadleafcommerce.common.persistence.Status) Entity(org.broadleafcommerce.openadmin.dto.Entity) Serializable(java.io.Serializable) FieldMetadata(org.broadleafcommerce.openadmin.dto.FieldMetadata) PersistencePerspective(org.broadleafcommerce.openadmin.dto.PersistencePerspective) ServiceException(org.broadleafcommerce.common.exception.ServiceException) CriteriaTransferObject(org.broadleafcommerce.openadmin.dto.CriteriaTransferObject) IndexField(org.broadleafcommerce.core.search.domain.IndexField) ServiceException(org.broadleafcommerce.common.exception.ServiceException)

Example 7 with Status

use of org.broadleafcommerce.common.persistence.Status in project BroadleafCommerce by BroadleafCommerce.

the class DynamicEntityDaoImpl method readOtherEntitiesWithPropertyValue.

@Override
public List<Long> readOtherEntitiesWithPropertyValue(Serializable instance, String propertyName, String value) {
    Class clazz = DynamicDaoHelperImpl.getNonProxyImplementationClassIfNecessary(instance.getClass());
    CriteriaBuilder builder = standardEntityManager.getCriteriaBuilder();
    CriteriaQuery<Long> criteria = builder.createQuery(Long.class);
    Root root = criteria.from(clazz);
    Path idField = root.get(getIdField(clazz).getName());
    criteria.select(idField.as(Long.class));
    List<Predicate> restrictions = new ArrayList<>();
    restrictions.add(builder.equal(root.get(propertyName), value));
    restrictions.add(builder.notEqual(idField, getIdentifier(instance)));
    if (instance instanceof Status) {
        restrictions.add(builder.or(builder.isNull(root.get("archiveStatus").get("archived")), builder.equal(root.get("archiveStatus").get("archived"), 'N')));
    }
    criteria.where(restrictions.toArray(new Predicate[restrictions.size()]));
    return standardEntityManager.createQuery(criteria).getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) Path(javax.persistence.criteria.Path) Status(org.broadleafcommerce.common.persistence.Status) Root(javax.persistence.criteria.Root) ArrayList(java.util.ArrayList) PersistentClass(org.hibernate.mapping.PersistentClass) AdminPresentationClass(org.broadleafcommerce.common.presentation.AdminPresentationClass) Predicate(javax.persistence.criteria.Predicate)

Aggregations

Status (org.broadleafcommerce.common.persistence.Status)7 Entity (org.broadleafcommerce.openadmin.dto.Entity)5 ServiceException (org.broadleafcommerce.common.exception.ServiceException)4 Serializable (java.io.Serializable)1 Field (java.lang.reflect.Field)1 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 ArrayList (java.util.ArrayList)1 OneToMany (javax.persistence.OneToMany)1 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)1 Path (javax.persistence.criteria.Path)1 Predicate (javax.persistence.criteria.Predicate)1 Root (javax.persistence.criteria.Root)1 ExtensionResultHolder (org.broadleafcommerce.common.extension.ExtensionResultHolder)1 ExtensionResultStatusType (org.broadleafcommerce.common.extension.ExtensionResultStatusType)1 Media (org.broadleafcommerce.common.media.domain.Media)1 AdminPresentationClass (org.broadleafcommerce.common.presentation.AdminPresentationClass)1 OperationType (org.broadleafcommerce.common.presentation.client.OperationType)1 Tuple (org.broadleafcommerce.common.util.Tuple)1 IndexField (org.broadleafcommerce.core.search.domain.IndexField)1 SearchFacet (org.broadleafcommerce.core.search.domain.SearchFacet)1