我想优化数据库中的查询数量。在休息的时候,出现了一系列的设备。需要检查是否增加了新设备。现在,它的工作方式如下:从数据库中选择当前用户的所有设备,并检查(从请求接收到的列表)是否存在新设备。我想把所有的工作都转化成一个数据库,并做这样的事情:
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。
我能用这样的“从”部分吗?在阅读了这些文档并多次尝试提出类似的请求后,没有得到任何结果。我将非常感谢你为解决这样一个问题而写一份请求或方法的任何建议。
发布于 2021-06-10 07:06:28
数据库对象名称(例如数据库、表、列名)不能使用预准备语句中的占位符绑定。因此,您必须硬编码第一个表的名称:
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)https://stackoverflow.com/questions/67916224
复制相似问题