2013-03-24 78 views
0

我有两个类逆变日志,其中逆变器有许多日志(1:N)。每个日志作为时间戳属性。JPA一个一对多查询

当我查询一个逆变器时,我通过“Inverter.getLog()”得到了所有的日志,这很好。

不过,我想创建返回逆变器的查询,只是选择的日志:

select t from Inverter t, Log l WHERE t.id = :id AND l.timestamp >= :date 

这给了我一大堆的结果,但是我想获得1个变频器与日志结果.timestamp> =:日期

这可能吗?

回答

2

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

而且您不能只装载一部分日志的逆变器。一个实体代表你在数据库中真正拥有的东西,而不是特定查询的结果。

我只想用em.find()度日ID逆变器,下面的查询,以获得其所有日志满足标准:

select log from Inverter inverter 
inner join inverter.logs log 
WHERE inverter.id = :id AND log.timestamp >= :date 

而且我会创建一个包含逆变器和其部分列表中的对象日志。