Find por um query com @ManyToMany

3 respostas
S

bom galera eu tenho o seguinte mapeamento

@ManyToMany(fetch = FetchType.LAZY, mappedBy = "medicamentoAlergiaList") @JoinTable(name = "alergia_medicamento", joinColumns = { @JoinColumn(name = "medi_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "aler_id", referencedColumnName="id", nullable = false, updatable = false) }) private List<Alergia> alergiaList;

@ManyToMany(fetch = FetchType.LAZY, cascade = javax.persistence.CascadeType.ALL) @JoinTable(name = "alergia_medicamento", joinColumns = { @JoinColumn(name = "aler_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "medi_id", nullable = false, updatable = false) }) private List<Medicamento> medicamentoAlergiaList;
ate aki tudo bem o programa e quando vou fazer uma query no hibernate para consulta

from Medicamento m  inner join fetch m.alergiaList a where m.id = a.id and a.id = "+alergia.getId()  +" order by id"

da o seguinte erro

ERRO: referência à coluna "id" é ambígua

estou implementando o getHibernateTemplate().find(query) do hibernate

grato

3 Respostas

WRYEL

tente trocar pelo que você precisa: m.id ou a.id

[]'s

A

cara,

vc ta confundido sql com hql,

segue como deve ser a consulta

select m from Medicamento m  inner join fetch m.alergiaList a where a.id = "+alergia.getId()  +" order by a.id

t+

S

deu certo, estava tao focado no join q nao percebi o order by
valeu mesmo galera

Criado 3 de novembro de 2011
Ultima resposta 4 de nov. de 2011
Respostas 3
Participantes 3