package org.exitsoft.orm.core.hibernate.property;
import org.exitsoft.orm.core.PropertyFilter;
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
/**
*
* 辅助{@link PropertyFilterRestrictionHolder#createPropertyFilter(String, String)}
* 方法创建PropertyFilter后使用哪种约束条件向Hibernate的{@link Criteria}进行条件过滤查询的接口,
*
* @author vincent
*
*/
public interface PropertyCriterionBuilder {
/**
* 获取Hibernate的约束标准
*
* @param filter 属性过滤器
*
* @return {@link Criterion}
*
*/
public Criterion build(PropertyFilter filter);
/**
* 获取Criterion标准的约束名称
*
* @return String
*/
public String getRestrictionName();
/**
* 获取Hibernate的约束标准
*
* @param propertyName 属性名
* @param value 值
*
* @return {@link Criterion}
*
*/
public Criterion build(String propertyName,Object value);
}