有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将一个Hibernate命名查询包含在另一个查询中

在使用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_条件”)是相同的查询,但它还有一个WHERE条件

是否可以使用此查询的公共部分进行一个查询,并在其中仅使用(或包括)第二个查询的这一部分(仅这一个条件)


共 (1) 个答案

  1. # 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>