首页
学习
活动
专区
圈层
工具
发布

部分JPQL
EN

Stack Overflow用户
提问于 2021-06-10 07:00:18
回答 1查看 33关注 0票数 0

我想优化数据库中的查询数量。在休息的时候,出现了一系列的设备。需要检查是否增加了新设备。现在,它的工作方式如下:从数据库中选择当前用户的所有设备,并检查(从请求接收到的列表)是否存在新设备。我想把所有的工作都转化成一个数据库,并做这样的事情:

代码语言:javascript
复制
select p 
from :firstParam p 
where p.sdauId NOT IN (select t.id 
                       from Equipment t 
                       where t.owner.id = :secondParam)

Param ":firstParam“是从请求中接收的设备列表。":secondParam“是一个用户id。

我能用这样的“从”部分吗?在阅读了这些文档并多次尝试提出类似的请求后,没有得到任何结果。我将非常感谢你为解决这样一个问题而写一份请求或方法的任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 07:06:28

数据库对象名称(例如数据库、表、列名)不能使用预准备语句中的占位符绑定。因此,您必须硬编码第一个表的名称:

代码语言:javascript
复制
select p
from yourTable p    -- cannot use a parameter for table names
where p.sdauId NOT IN (select t.id from Equipment t where t.owner.id = :secondParam)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67916224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档