Java 如何获取与ArrayList中的条目匹配的所有SQL条目?

Java 如何获取与ArrayList中的条目匹配的所有SQL条目?,java,sql,spring,hibernate,Java,Sql,Spring,Hibernate,我有一个包含消息表的数据库,其中每个消息条目都包含其作者的变量。我还有一个包含作者列表的ArrayList。我想做的是创建一个SQL查询,从ArrayList中存在作者的数据库中检索所有条目 因此,大致如下: List<Message> result = session.createQuery("from Message where author ISIN ARRAYLIST order by id DESC ").list(); List result=session.creat

我有一个包含消息表的数据库,其中每个消息条目都包含其作者的变量。我还有一个包含作者列表的ArrayList。我想做的是创建一个SQL查询,从ArrayList中存在作者的数据库中检索所有条目

因此,大致如下:

List<Message> result = session.createQuery("from Message where author ISIN ARRAYLIST order by id DESC ").list();
List result=session.createQuery(“从消息中,作者按id DESC排序为ARRAYLIST”).List();
有人知道我会怎么做吗?

arraylistauthors=(ArrayList)”;
ArrayList<String> authors=(ArrayList<String>)"<your list>";
String in="(";
for(String author:authors){
in +=author+",";
}
in=in.substring(0,in.length()-1);
 in +=")";
List<Message> result = session.createQuery("from Message where author IS IN "+in+" order by id DESC ").list();
字符串in=“(”; for(字符串作者:作者){ in+=作者“,”; } in=in.substring(0,in.length()-1); 在+=”; List result=session.createQuery(“从消息中,作者按id DESC的“+IN+”顺序”).List();
arraylistauthors=(ArrayList)”;
字符串in=“(”;
for(字符串作者:作者){
in+=作者“,”;
}
in=in.substring(0,in.length()-1);
在+=”;
List result=session.createQuery(“从消息中,作者按id DESC的“+IN+”顺序”).List();

您可以将authorlist设置为命名参数:

String cmd = "from Message where author IN (:authorlist) order by id DESC";
Query q = session.createQuery(cmd);
q.setParameterList("authorlist", yourAuthorList);
List<Message> result = q.list();
String cmd=“from Message where author IN(:authorlist)order by id DESC”;
Query q=session.createQuery(cmd);
q、 setParameterList(“authorlist”,您的authorlist);
列表结果=q.List();

您可以将authorlist设置为命名参数:

String cmd = "from Message where author IN (:authorlist) order by id DESC";
Query q = session.createQuery(cmd);
q.setParameterList("authorlist", yourAuthorList);
List<Message> result = q.list();
String cmd=“from Message where author IN(:authorlist)order by id DESC”;
Query q=session.createQuery(cmd);
q、 setParameterList(“authorlist”,您的authorlist);
列表结果=q.List();
您可以这样做(同样的事情,不同的方式):

String hql=“从作者所在的消息中选择*(:authors)”;
Query=session.createQuery(hql);
setParameterList(“authors”,);
您可以这样做(同样的事情,不同的方式):

String hql=“从作者所在的消息中选择*(:authors)”;
Query=session.createQuery(hql);
setParameterList(“authors”,);
String cmd=“从消息中,作者按id描述按(:authorlist)顺序排列”
Query q=session.createQuery(cmd)

q.setParameterList(“authorlist”,您的authorlist)
q.setParameterList(“authorlist”,您的authorlist)

List result=q.List()

您可以这样尝试,但在这样做之前,您应该知道ArrayList中没有任何元素。因为它违反了查询

请参考此链接

String cmd=“从消息中,作者按id描述按(:authorlist)顺序排列”
Query q=session.createQuery(cmd)

q.setParameterList(“authorlist”,您的authorlist)
q.setParameterList(“authorlist”,您的authorlist)

List result=q.List()

您可以这样尝试,但在这样做之前,您应该知道ArrayList中没有任何元素。因为它违反了查询

请参考此链接