JPQL FROM 部分

问题描述

我想优化数据库中的查询次数。目前在 REST 上,设备列表出现了。需要检查是否添加了新设备。现在它是这样工作的:从数据库中选择当前用户的所有设备,并检查(从请求中收到一个列表)是否存在新设备。我想把所有的工作翻译成一个数据库,然后做这样的事情:

select to_date('1970-01-01 00','yyyy-mm-dd hh24') + (1424217600000)/1000/60/60/24 from dual;

Param ":firstParam" 是从请求中收到的设备列表。 ":secondParam" 是用户 ID。

我可以这样使用“来自”部分吗?在阅读文档并多次尝试提出类似请求后,没有任何结果。如果您提供有关编写请求或解决此类问题的方法的任何提示,我将不胜感激。

解决方法

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

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)