Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在另一个中包含一个Hibernate命名查询_Java_Sql_Xml_Hibernate_Named Query - Fatal编程技术网

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

Java 在另一个中包含一个Hibernate命名查询,java,sql,xml,hibernate,named-query,Java,Sql,Xml,Hibernate,Named Query,在使用Hibernate的Java程序中,我的XML文件包含两个命名查询: <hibernate-mapping> <sql-query name="BIG_SQL_QUERY_WITH_LOT_OF_WHERE"> <![CDATA[ select * from Foo where ... and ... and ... ...

在使用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条件

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

纯XML解决方案: 您可以使用
XML实体
,这是一个缩写条目,可以放在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>

&内含物;