JPA一对多查询
我有两个类Inverter和Log,其中Inverter有许多日志(1:n)。每个日志作为时间戳属性 当我查询一个Inverter时,我通过“Inverter.getLog()”获取所有日志,这很好 但是,我想创建一个查询,返回一个Inverter,只包含选定的日志: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
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及其部分日志列表的对象