在其中使用arraylist在其中的列中,如下所示, hibernate and mysql 。。
List<String> list=new ArrayList<String>();
list.add("name1");
list.add("name2");
list.add("name3");
String query= "from TEST where name in (:names)";
Query q = s.createQuery(hql);
q.setParameterList("names", list);
,但需要在comma划界值的列的条件下实现相同的条件。如果此列中的任何值在ArrayList
中显示,则必须显示所有记录表结构
ID NAME
----------
1 name1,name2,name3
2 name1
3 name2,name3
4 name5,name8
5 name3,name6
预期结果:
具有ID 1,2,3,5 的记录必须显示。
问题语句:我想使用限制性的冬眠条件,并且我的arraylist可以在Where子句中使用,我们无法使用限制。IN("名称",list); 因为此名称列包含逗号界的值,我们需要检查ArrayList中的任何元素是否是此列中数据的一部分。
修复DB结构将是我的建议。
但是,如果您现在需要解决方案,我建议您使用like
SQL句子。它将检查给定的字符串是否包含在结果中。
在这里您有一个链接,因此您可以看到它的工作原理:http://www.w3schools.com/sql/sql_like.asp
您的SQL会变成这样的东西:
from TEST where name like (:names)