0
我有多個下拉選擇框可供選擇流派列表。我在JavaScript中創建了一個JSON數組,其中用戶&選擇的所有流派都將它們傳遞給繪圖圖表的後端Java函數。如何將Json數組傳遞給JPQL Where運算符的子句?
Database : MySQL
的JavaScript:
var items = {};
$(function() {
$('#genres1').change(function() {
console.log($(this).val());
items.genres = $(this).val();
}).multipleSelect({
width: '56%'
});
});
var genres = items.genres.map(function(e){
return JSON.stringify(e);
});
var selectedGenres = genres.join(", ");
alert(selectedGenres); // Outputs : "Action", "Horror" and so on.... based on selection
的Java:
public static void myFun(String genre){
Logger.info("Genre"+genre); //prints "Action","Horror"
List<String> selectedGenres = Arrays.asList(genre);
//List<String> selectedGenres = Arrays.asList("Action","Horror"); //Correct output
Logger.info("Genre"+selectedGenres); //prints ["Action","Horror"]
String queryString="SELECT wD FROM sed WHERE genre IN (:genres)";
Query query1=JPA.em().createNativeQuery(queryString).setParameter("genres", selectedGenres);
}
我不知道該如何數組必須要傳遞給查詢。
//List<String> selectedGenres = Arrays.asList("Action","Horror"); //Correct output
這個硬編碼值給了我正確的輸出。當我通過「selectedGenres」數組包含完全相同的輸入 - "Action","Horror"
我沒有得到首選輸出。我也嘗試發送「流派」,因爲它是一個參數,但它不起作用。我得到空的答覆。有人能糾正我在哪裏出錯嗎?
我會試試這個。感謝您的意見@Michael Arenzon – Venky