Java 在另一个中包含一个Hibernate命名查询
在使用Hibernate的Java程序中,我的XML文件包含两个命名查询: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-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>
&内含物;