Olá pessoal, primeira vez no fórum. Vamos ver se dá certo.
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