gpt4 book ai didi

java - 在条款中使用 createNativeQuery

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:59 25 4
gpt4 key购买 nike

如何使用 createNativeQuery 编写 IN 子句?

示例

codeList = "123 ,456";

然后我得到这样的codeList:

CODE IN (:codeList)

但是我无法获取数据。使用 createNativeQuery 编写 IN 子句的正确方法是什么?

最佳答案

IN 子句 接受List 而不是String 所以你应该做的是像这样将这个String 转换成List 然后设置参数

List<Integer> listCode = Stream.of(codeList.split("\\s*,\\s*"))
.map(Integer::valueOf)
.collect(toList());// this will return a list [123, 456]
query.setParameter("codeList", listCode);

现在谈谈你的问题

当你尝试使用 :

query.setParameter("codeList", "123 ,456");

你的查询是这样转换的:

CODE IN ('123 ,456')
^________^-----------------this treated as a String not as a List

有一个将此参数与查询连接起来的解决方案,但我不建议使用此解决方案!

关于java - 在条款中使用 createNativeQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50170414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com