问题描述
我使用 HQL 命名查询(在 XML 文件中定义)来使用 Hibernate 查询我的数据库。有些查询非常复杂,我发现自己将一个查询的重要部分复制粘贴到另一个类似的查询中。
我想知道是否有可能在“命名查询片段”中定义公共部分并在我的所有查询中重用该片段?
<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,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>
.
.
.
.
.
解决方法
由于这是 XML,您可以为此使用 XML entities,但我怀疑这是否有助于提高可读性。我只想说,忍受它。这不一定是重复。 IMO 这就像说字段的拼写 private final
是重复的。不是。