我是HQL的新手,并且有一个我需要转换的SQL表达式,但是无法选择SQL语句是:

select SenseDate as Time,SenseValue as Value
from UserData
where NetworkID = '23'
and IODeviceID = '129'
and SenseDate >=  DateAdd("d",-1, GETDATE())
and SenseDate<=GETDATE()

我可以在HQL中运行此部分而不会出现问题:
from UserData
where NetworkID = '23'
and IODeviceID = '129'
and SenseDate >=  DateAdd(d,-1, GETDATE())
and SenseDate<=GETDATE()

但是我只希望返回SenseDateSenseValue值,有人可以向我展示如何选择,当我尝试添加select SenseDate, SenseValue等时。我在Netbeans中不断出错

最佳答案

您可以使用HQL选择字段/列。看起来如下:

select
    SenseDate,
    SenseValue
from
    UserData
where
    NetworkID = '23'
and
    IODeviceID = '129'
and
    SenseDate >= DateAdd(d, -1, GETDATE())
and
    SenseDate <= GETDATE()

执行此操作时,您将收到对象数组的列表:
final List<Object[]> values = query.list();

列表中的每个元素代表一个找到的行。数组本身包含两个选定字段,其顺序与您在语句中声明的顺序相同。

08-06 20:51