在我使用 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 条件。
有没有办法用该查询的公共(public)部分进行一个查询,并在其中使用(或包含)第二个查询的这一部分(只有这一个条件)?
最佳答案
纯 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>
关于java - 将一个 Hibernate 命名查询包含在另一个 Hibernate 命名查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52548651/