Java 如何在orm.xml中的其他命名查询中重用命名公共HQL查询
我使用HQL命名查询(在XML文件中定义)来使用Hibernate查询我的数据库。有些查询相当复杂,我发现自己将一个查询的实质部分复制粘贴到另一个查询,类似的一个查询 我想知道是否有可能在“命名查询片段”中定义公共部分,并在所有查询中重用该片段Java 如何在orm.xml中的其他命名查询中重用命名公共HQL查询,java,hibernate,jpa,nhibernate-mapping,Java,Hibernate,Jpa,Nhibernate Mapping,我使用HQL命名查询(在XML文件中定义)来使用Hibernate查询我的数据库。有些查询相当复杂,我发现自己将一个查询的实质部分复制粘贴到另一个查询,类似的一个查询 我想知道是否有可能在“命名查询片段”中定义公共部分,并在所有查询中重用该片段 <named-native-query name="PeriodEntity.Retail.kpiQuery.NA.dly" result-class="com.abc.
<named-native-query name="PeriodEntity.Retail.kpiQuery.NA.dly"
result-class="com.abc.data.store.insight.model.PeriodEntity">
<query>
SELECT
LOCATION,
MERCHANDISE,
PERIOD,
ATV,
SALES,
sales_ly,
COMP,
GM,
GM_LY,
AUR,
AURLY,
UNITSALES,
UNITSALESLY,
UNITS_COMP,
UPT
FROM
dbo.V_DLY_API_PROC_RTL_MCLT_SLS_INV v
WHERE
LOC_BRD_ID = :brandId
AND chnl_key = :channelId
ORDER BY
time_svc_lvl_opr_id ASC
</query>
</named-native-query>
<named-native-query name="PeriodEntity.Retail.kpiQuery.NA.dly"
result-class="com.abc.data.store.insight.model.PeriodEntity">
<query>
SELECT
LOCATION,
MERCHANDISE,
PERIOD,
ATV,
SALES,
sales_ly,
COMP,
GM,
GM_LY,
AUR,
AURLY,
UNITSALES,
UNITSALESLY,
UNITS_COMP,
UPT
FROM
dbo.V_Week_API_PROC_RTL_MCLT_SLS_INV v
WHERE
LOC_BRD_ID = :brandId
AND chnl_key = :channelId
ORDER BY
time_svc_lvl_opr_id ASC
</query>
</named-native-query>
.
.
.
.
.
挑选
位置,
商品,
时期
亚洲电视,
出售,
销售部,
公司,
转基因的
总经理,
AUR,
奥利,
单位销售额,
销售,
单位组合,
UPT
从…起
dbo.V_DLY_API_过程_RTL_MCLT_SLS_库存V
哪里
LOC_BRD_ID=:brandId
和chnl_键=:channelId
订购人
时间svc层操作id ASC
挑选
位置,
商品,
时期
亚洲电视,
出售,
销售部,
公司,
转基因的
总经理,
AUR,
奥利,
单位销售额,
销售,
单位组合,
UPT
从…起
dbo.V_周_API_过程_RTL_MCLT_SLS_库存V
哪里
LOC_BRD_ID=:brandId
和chnl_键=:channelId
订购人
时间svc层操作id ASC
.
.
.
.
.
由于这是XML,您可以将其用于此目的,但我怀疑这是否有助于可读性。我只能说,接受它。这不一定是重复。在我看来,这就像说字段的拼写是重复的。不是。恐怕不是。如果您想要重用性,请查看CriteriaAPI或QueryDSL