Hibernate过滤器中的动态运算符

时间:2012-05-18 17:46:37

标签: java hibernate dynamic filter

我需要在运行时定义一个自定义的hibernate过滤器,我不确定是否可行。

基本上,用户将传入一个表示过滤器的对象,该过滤器由以下模式定义 -

<attributeGroup name="FilterAttributes">
        <attribute name="Name" type="string" use="required"/>
        <attribute name="Operation" type="string" use="required"/>
        <attribute name="Value" type="string" use="required"/>
    </attributeGroup>
    <complexType name="Filter">
        <attributeGroup ref="F:FilterAttributes"/>
    </complexType>
    <complexType name="FilterCriteria">
        <sequence>
            <element name="Filter" type="F:Filter" minOccurs="1" maxOccurs="unbounded"/>
        </sequence>
    </complexType>
    <element name="FilterCriteria" type="F:FilterCriteria"/>

所以想法是用户会传入一个表示这个结构的对象,我会动态创建一个过滤器 - 要过滤的属性/ db列的名称,要在比较中使用的运算符,以及要比较的价值。

我知道我可以定义我的过滤器并参数化我的HBM中的值或使用注释,但这不会让我在运行时更改运算符。我可以为我们计划允许过滤的每一列定义一个过滤器,但我不必为每个可能传入的操作符指定一个过滤器。

是否可以在运行时构造/修改过滤器,以便我可以实现这一点?

0 个答案:

没有答案