【问题标题】:How to add greater than/less than to Hibernate filters如何向 Hibernate 过滤器添加大于/小于
【发布时间】:2010-11-06 06:39:39
【问题描述】:

如何在 hbm.xml 文件中指定的 Hibernate 过滤器的条件中添加大于或小于符号?

我正在尝试添加过滤器以将集合限制在特定日期范围内:

<filter name="limitTalksByDateRange" condition="talkstart >= :tstart and talkstart <= :tend" />

不幸的是,这会破坏 XML 解析。我尝试过反斜杠转义、“ge”和“le”,甚至是 Hibernate 文档中提到的“在 :tstart 和 :tend 之间”。没有任何工作,如果我能找到任何专门描述过滤条件中有效运算符的文档,我会被诅咒的。

【问题讨论】:

    标签: java hibernate orm jpa filter


    【解决方案1】:

    你试过了吗:

    <filter name="limitTalksByDateRange" condition="talkstart &gt;= :tstart and talkstart &lt;= :tend" />
    

    注意&amp;gt;&amp;lt;,而不是&gt;&lt;

    另外,我看到的examples 在限制变量上没有':',所以也许是这样:

    <filter name="limitTalksByDateRange" condition="talkstart &gt;= tstart and talkstart &lt;= tend" />
    

    或者这个:

    <filter name="limitTalksByDateRange" condition="talkstart BETWEEN tstart and tend" />
    

    会更好。

    【讨论】:

      【解决方案2】:

      我发现这是可行的:

      <filter name="limitTalksByDaterange" condition="talkstart &#62;= :tstart and talkstart &#60;= :tend" />
      

      我认为#nn 代码可能更可靠一些;我见过 &gt 和 &lt 在某些情况下会中断。

      我根本无法使中间构造起作用。

      【讨论】:

        猜你喜欢
        • 2018-09-14
        • 2017-08-17
        • 1970-01-01
        • 2016-04-17
        • 1970-01-01
        • 1970-01-01
        • 2015-01-19
        • 1970-01-01
        • 2019-05-25
        相关资源
        最近更新 更多