1

我本质上需要在运行时定义一个自定义休眠过滤器,我不确定这是否可行。

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

<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"/>

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

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

是否可以在运行时构造/修改过滤器,这样我就可以做到这一点?

4

0 回答 0