1
我有搜索屏幕有10個領域,並涉及大約5到6表得到結果。我正在編寫一個自定義的SQL查詢,並且只在存在值時追加where條件。休眠自定義查詢搜索屏幕
有人可以請建議這是正確的方法或任何其他更好的方法。
我無法爲我的情況使用任何插件或其他API。
StringBuffer sqlQuery = new StringBuffer();
sqlQuery.append (" select member.* from member, customer, case where customer.status='A');
if(firstName != null)
sqlQuery.append("customer.firstName= :firstName");
if(caseid != null)
sqlQuery.append("case.caseid =:caseid");
SQLQuery queryObj = createSQLquery(sqlQuery.toString());
queryObj.list();
其中作爲構件,客戶,殼體是實際的表。
UPDATE
當我加入where條件字符串緩衝區
if(caseid != null)
sqlQuery.append(" and case.caseid =:caseid");
and when queryObj is formed I am doing it as
if(caseid != null)
queryObj.setString("caseid", caseid);
is there better way to add after queryObj (to combine both)?
在此先感謝。
使用標準,因爲我告訴我有超過5個表我不知道如何參考對方。如果我提到,其中一些是一對多,多對一,多對多。我有點用HQL,再次編輯這個問題,請檢查並讓我知道。謝謝 – changeme
http://docs.jboss.org/hibernate/core/3.6/reference/zh-CN/html_single/#querycriteria-associations。除了鏈接到文檔之外,我無能爲力。嘗試閱讀,理解並嘗試。你將無法在3分鐘內成爲標準嚮導。如果您遇到困難,請發佈一個問題,準確解釋您正在嘗試執行的操作,並參與相關代碼和相關實體的映射。 –
你能看到更新一次,並幫助我多一點? – changeme