Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA一对多查询_Jpa - Fatal编程技术网

JPA一对多查询

JPA一对多查询,jpa,Jpa,我有两个类Inverter和Log,其中Inverter有许多日志(1:n)。每个日志作为时间戳属性 当我查询一个Inverter时,我通过“Inverter.getLog()”获取所有日志,这很好 但是,我想创建一个查询,返回一个Inverter,只包含选定的日志: select t from Inverter t, Log l WHERE t.id = :id AND l.timestamp >= :date 这给了我一大堆的结果,但是我想用Logs.timestamp>=:date

我有两个类InverterLog,其中Inverter有许多日志(1:n)。每个日志作为时间戳属性

当我查询一个Inverter时,我通过“Inverter.getLog()”获取所有日志,这很好

但是,我想创建一个查询,返回一个Inverter,只包含选定的日志:

select t from Inverter t, Log l WHERE t.id = :id AND l.timestamp >= :date
这给了我一大堆的结果,但是我想用Logs.timestamp>=:date得到一个结果


这可能吗?

您的查询要求所有满足条件的逆变器和日志,而不在它们之间进行任何连接

你不能让一个逆变器只装载一部分日志。实体表示数据库中的实际内容,而不是特定查询的结果

我只需使用
em.find()
按ID获取逆变器,并使用以下查询获取其满足条件的所有日志:

select log from Inverter inverter 
inner join inverter.logs log 
WHERE inverter.id = :id AND log.timestamp >= :date
我将创建一个包含inverter及其部分日志列表的对象