1
創建本機查詢通常在我的工作時間,我花了很多時間查詢db(oracle)並從存儲我們接收的流的各個表中解析blob。 有各種類型的流,所以我試圖做一個簡單的Web應用程序,我寫的選擇語句,它會返回所有相應的解析流。 我的問題是使用JPA和執行簡單的本地查詢:Jpa從表單輸入
select B_BODY from TABLE_B where TRANSACTION_ID = 'GG-148c-01502790743907855009';
語句不返回任何東西,但直接查詢數據庫返回的記錄。 這是我的Java代碼:
@Transactional(readOnly = true)
public List<Object[]> retrieveBlobs(String squery) {
squery = squery + " and rownum <= "+maxResults;
Query query = em.createNativeQuery(squery);
List<Object[]> resultList = query.getResultList();
return resultList;
}
這是SQL生成:
Hibernate:
select
B_BODY
from
TABLE_B
where
TRANSACTION_ID ='GG-148c-01502790743907855009'
and rownum <= 100
我知道,這種方式可能看起來很奇怪,但我們的團隊花了很多時間試圖來標記存儲流(識別如何解析流的代碼也存儲在表中)。無論如何,這個應用程序將只在內部使用。有一種方法可以直接執行查詢並檢索正確的輸出嗎?
直接從webapp執行查詢?您是否考慮過這可能意味着的安全風險?你的DBA對此有何評論? –
正如我所說的將被內部使用,只能從那些已經可以對db.Btw執行查詢的人使用,我已經問過dba(我),他同意。 –