All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sklsft.commons.model.patterns.HibernateCriteriaUtils Maven / Gradle / Ivy

package org.sklsft.commons.model.patterns;

import org.hibernate.Criteria;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.hibernate.type.StringType;
import org.sklsft.commons.api.model.OrderType;
import org.sklsft.commons.text.StringUtils;

/**
 * Some Hibernate criteria functions used to build restrictions
 * 
We assume sql function normalize is present in db * * @author Nicolas Thibault * */ public class HibernateCriteriaUtils { public static Criteria addStringContainsRestriction(Criteria criteria, String field, String value) { if (!StringUtils.isEmpty(value)) { criteria = criteria.add(Restrictions.sqlRestriction("normalize(" + field + ") like ?", "%" + StringUtils.normalize(value) + "%", StringType.INSTANCE)); } return criteria; } public static > Criteria addBetweenRestriction(Criteria criteria, String field, T minValue, T maxValue) { if (minValue != null) { criteria = criteria.add(Restrictions.ge(field, minValue)); } if (maxValue != null) { criteria = criteria.add(Restrictions.le(field, maxValue)); } return criteria; } public static Criteria addBooleanRestriction(Criteria criteria, String field, Boolean value) { if (value != null) { criteria = criteria.add(Restrictions.eq(field, value)); } return criteria; } public static Criteria addOrder(Criteria criteria, String property, OrderType orderType) { if (orderType != null) { if (orderType.equals(OrderType.ASC)) { criteria.addOrder(Order.asc(property)); } else { criteria.addOrder(Order.desc(property)); } } return criteria; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy