【问题标题】:Include one Hibernate Named Query in another在另一个中包含一个 Hibernate 命名查询
【发布时间】:2018-09-28 05:07:22
【问题描述】:

在我的带有 Hibernate 的 Java 程序中,我有带有两个命名查询的 XML 文件:

<hibernate-mapping>
    <sql-query name="BIG_SQL_QUERY_WITH_LOT_OF_WHERE">
       <![CDATA[
         select * from Foo
         where ...
           and ...
           and ...
           ...
         order by ...
       ]]>
    </sql-query>

    <sql-query name="BIG_SQL_QUERY_WITH_LOT_OF_WHERE_WITH_ONE_MORE_CONDITION">
       <![CDATA[
         select * from Foo
         where ...
           and ...
           and ...
           ...
           and one_more_condition = ...
         order by ...
       ]]>
</hibernate-mapping>

第一个查询(“BIG_SQL_QUERY_WITH_LOT_OF_WHERE”)内部有很多连接和条件。第二个查询(“BIG_SQL_QUERY_WITH_LOT_OF_WHERE_WITH_ONE_MORE_CONDITION”)是同一个查询,但它还有一个 where 条件。

有没有办法用这个查询的公共部分进行一个查询,并在其中使用(或包含)第二个查询的这一部分(只有这一个条件)?

【问题讨论】:

    标签: java sql xml hibernate named-query


    【解决方案1】:

    纯 XML 解决方案: 您可以使用XML entity,这是一个缩写条目,您可以将其放在 XML 文档的任何位置:

    <?xml version="1.0" standalone="no" ?>
    <!DOCTYPE hibernate-mapping [
    <!ENTITY includedStuff SYSTEM "common.xml">
    ]>
    <hibernate-mapping>
        <sql-query name="BIG_SQL_QUERY_WITH_LOT_OF_WHERE">
           &includedStuff;
        </sql-query>
    </hibernate-mapping>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-22
      • 2020-08-23
      • 2012-10-14
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      相关资源
      最近更新 更多