[英]Oracle query in Java Spring MVC does not work properly
<select id="BBSManageDAO.selectBbsSchdulManageList" parameterClass="BoardVO" resultMap="schdulProgramList">
<![CDATA[
SELECT NTT_ID, BBS_ID, NTT_NO, NTT_SJ, SUBSTR(NTT_CN,1,100) NTT_CN, CATEGORY, FRST_REGIST_PNTTM, NTCE_BGNDE, NTCE_ENDDE
,FIELD1, EVN_END_DATE, FIELD2, TELL_NO, USE_AT
FROM TN_BBS A
WHERE 1=1
AND A.USE_AT = 'Y'
AND (
BBS_ID = 'education01_main' or BBS_ID = 'course01_main' or
BBS_ID = 'feestival01_main' or BBS_ID = 'reading01_main'
)
]]>
<isNotEmpty property="searchCondition2">
<isEqual property="searchCondition2" compareValue="DAILY" prepend="AND">
<![CDATA[ #searchSdate# >= FIELD1 AND #searchSdate# <= EVN_END_DATE ]]>
</isEqual>
isEqual property="searchCondition2" compareValue="WEEK" prepend="AND">
<![CDATA[ (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1) OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE) OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) AND USE_AT='Y']]>
</isEqual>
</isNotEmpty>
<![CDATA[
ORDER BY FIELD1 ASC
]]>
</select>
這是我的SQL_Oracle.xml
內部代碼的一部分
該查詢是關於如果事件滿足條件(條件是關於日期)選擇事件的一些事件。
我有兩個API。 一個是每天,另一個是每周。
在日常查詢中,用戶發送特定日期( #searchSdate#
)作為參數,並發送當天發生的數據庫搜索事件。
在每周用戶中,發送一周,以便他們將服務器的一周的開始日期和一周的結束日期提供給服務器,並發送回該周發生的事件。
問題是盡管我寫了
WHERE 1=1
AND A.USE_AT = 'Y'
當我使用WEEK
搜索時,他們將帶有'N'USE_AT數據的事件發送給我。
我不在乎是否DAILY
向我發送相同的數據。 但是他們沒有
最后,當我在WEEK
搜索的末尾添加AND USE_AT='Y
'時,它們起作用了。
但是我仍然不知道為什么我的ibatis grammer可能有一些錯誤。
有誰知道這是什么問題?
您上面的查詢可能存在問題。 嘗試使用或修改查詢,以消除OR比較中包含的所有查詢:
( (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1)
OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE)
OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) )
AND USE_AT='Y'
另外,您的SQL_Oracle.xml
文件有xml問題,因為第二個isEqual
沒有正確標記
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.