JPA com annotations (mapeamento join histórico)

Olá pessoal, primeira vez no fórum. Vamos ver se dá certo. :wink:
A dúvida é a seguinte:

Estou usando JPA do hibernate com annotations (somente o JPA)

Estou mapeando dados históricos, “Monitor” que aponta para “Device”. Uso historyStart e historyEnd para historizar, onde o historyEnd=null indica o ultimo objeto.
A questão é que se eu crio um monitor que aponta um device, modifico algumas vezes o device, quando eu recupero o mesmo monitor, ele aponta para o objeto histórico device original. O que quero fazer, e já fiz no OJB, foi fazer ele retornar todos os objetos correntes, mas por algum motivo minha query não funciona.

mapeei o getdevice() do monitor assim:
@ManyToOne
@JoinColumn(name=“device_historyid”, referencedColumnName=“historyid”, unique=false, nullable=true, updatable=true)

onde ao invés de apontar para id eu aponto para device_historyid, comum às versões do mesmo objeto device. (diferentes ids, mesmo historyid)

até aí tudo bem, meu problema é que a minha JPQL não consegue puxar o objeto agregado device atualizado, ele retorna sempre aquele originalmente criado:

JPQL:
Select x from Monitor x left join fetch x.device where (x.historyEnd=null) and (y.historyEnd=null)

teoricamente o join “fetch” deveria fazer o truque de trazer os objetos associados.

Alguma idéia?

[]s