Javascript 如何将Json数组传递给IN运算符的JPQL Where子句?
我有一个多下拉选择框,可以选择流派列表。我正在用JavaScript创建一个JSON数组,其中包含用户选择的所有类型&将它们传递给后端Java函数以绘制图形Javascript 如何将Json数组传递给IN运算符的JPQL Where子句?,javascript,java,mysql,hibernate,jpa,Javascript,Java,Mysql,Hibernate,Jpa,我有一个多下拉选择框,可以选择流派列表。我正在用JavaScript创建一个JSON数组,其中包含用户选择的所有类型&将它们传递给后端Java函数以绘制图形 Database : MySQL JavaScript: var items = {}; $(function() { $('#genres1').change(function() { console.log($(this).val()); items.genre
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
爪哇:
我不知道如何将数组传递给查询
//List<String> selectedGenres = Arrays.asList("Action","Horror"); //Correct output
此硬编码值为我提供了正确的输出。当我传递selectedGenres数组时,该数组包含与上述输入操作完全相同的内容,但我没有得到首选输出。我还试图发送流派,因为它是作为一个参数,但它没有工作,虽然。我得到了空洞的回应。有人能纠正我哪里出了问题吗
List<String> selectedGenres = Arrays.asList(genre);
一些API说明:ArraySList接受字符串。。。vargs,其中每个参数都是用于创建实际列表的元素值
回到您的方法:您的输入参数是String-genre-a-String,而asList方法不知道该类型字符串实际上是一个数组,也不应该知道,并且它正确地完成了它的工作-在我们的例子中,在接收到单个元素字符串时,将创建一个一维列表
要解决此问题,您可能需要尝试以下选项之一:
如果字符串是JSON数组,请使用JSON解析库,例如
尝试用逗号分割输入类型,并将该数组转换回列表。
我试试这个。谢谢你的意见@Michael Arenzon
List<String> selectedGenres = Arrays.asList(genre);