我试图在sqlquery中设置参数ltlist,比如=>['a',b','c'],但是当我在设置参数之后没有任何变化=>“select。。。。lt in(:ltlist)“我做错什么了
//List lTList=new ArrayList<String>();
Query selectQr = session.createSQLQuery("select id ipfs from ipfs where lt in(:lTList) and user_id='" + userId + "'");
selectQr.setParameterList("lTList", lTList);
没有错误,但是:query constructed:select。。。。lt in(:ltlist)
需要查询:选择。。。。lt in('a','b','c')
3条答案
按热度按时间20jt8wwn1#
“in(:ltlist)”“in”和“()”需要空格
a8jjtwal2#
id ipfs是ipfs表中的一列还是两列??
如果id是一列,ipfs是另一列,则应该添加逗号、id和ipfs
否则应将列替换为“id ipfs”
ca1c2owp3#
第二条评论是正确的,
=>为什么要更改查询?参数在执行时应用。另外,您不应该使用concat来创建这样的查询。使用另一个参数设置用户ID。-m。迪纳姆
问题是setparameterlist正在用引号“”设置参数,而我已经在发送一个附加了引号的列表,因此在执行时它变成了这样-('a'、'b'、'c')