SELECT DISTINCT m FROM Medico m JOIN m.medicoHospitais h WHERE h.nome = :nome
Talvez o IN também funcione:
SELECT DISTINCT m FROM Medico m, IN (m.medicoHospitais) h WHERE h.nome = :nome
Lucas_Sorrentino
Você realmente precisa que seja em um query? Segundo o livro Java Persistence with Hibernate, vc poderia, em sua classe MedicoHospital, repetir os objetos que você pega no MedicoHospitalPk, assim tendo acesso direto a eles. Ficaria algo mais ou menos assim:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: model.MedicoHospital column: hospital_id (should be mapped with insert="false" update="false")
Lucas_Sorrentino
Então, ele dá isso porque, como esses dois campos compõem o id da entidade, eles não podem ser modificados. Não é permitido alterar o id de entidades. Você pode fazer exatamente assim, como diz no console, que irá funcionar.