我創建了一個通用的方法,該方法將採取hibernate named query
,一個HashMap
對象包含在以下方式命名的查詢參數名稱值:如何將通用參數設置爲Hibernate的查詢對象?
的方法簽名是:
public static <T> ArrayList<T> getData(String hibernateQueryName, HashMap<?, ?>
queryNameValue) throws Exception;
現在假設我有一個SQL及其hibernateQueryName
是EMPDATA:
SELECT e.emp_nm AS EMP_NAME
, e.emp_address AS EMP_ADDR
FROM employee e
WHERE e.emp_no > :empNumber
AND e.name LIKE :empName
這裏empNumber
和empName
是參數的姓名和他們AR e分別爲Integer和String類型。
現在假設我有一個更多的SQL和hibernateQueryName
是studentData:
SELECT s.s_nm AS EMP_NAME
FROM student s
WHERE s.dob > :studentDOB
這裏studentDOB
是參數名稱及Date
類型。 studentDOB
是我將從HashMap獲得的一個關鍵。
我要設置這些參數和值來查詢對象,如:
Query query = getSession().getNamedQuery(hibernateQueryName);
query.setXXX(parameterName, parameterValue);
上面的代碼寫在我getData
方法。
有是基於Type
例如query.setInteger()
但調用這個我需要找到它,我傳遞getData
方法的?
種類繁多query.setXXX方法。是否有可能使用未知類型的query.setXXX方法?
我認爲你可能需要重寫你的問題的澄清。你問如何在查詢中使用你的'getData'參數? –
@JordanD我編輯了我的問題。請讓我知道我是否能夠澄清我的觀點。 – Vishrant