相关疑难解决方法(0)

将IN子句列表添加到JPA查询中

我已经构建了一个看起来像这样的NamedQuery:

@NamedQuery(name = "EventLog.viewDatesInclude",
        query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
        + "el.timeMark <= :dateTo AND "
        + "el.name IN (:inclList)")
Run Code Online (Sandbox Code Playgroud)

我想要做的是填写参数:inclList与项目列表而不是一个项目.例如,如果我有一个new List<String>() { "a", "b", "c" }如何在:inclList参数中得到它?它只允许我编纂一个字符串.例如:

setParameter("inclList", "a") // works

setParameter("inclList", "a, b") // does not work

setParameter("inclList", "'a', 'b'") // does not work

setParameter("inclList", list) // throws an exception
Run Code Online (Sandbox Code Playgroud)

我知道我可以构建一个字符串并从中构建整个Query,但我想避免开销.有没有更好的方法呢?

相关问题:如果List非常大,有没有什么好的方法来构建这样的查询?

java jpa jpql

116
推荐指数
4
解决办法
23万
查看次数

标签 统计

java ×1

jpa ×1

jpql ×1