Eu tive o mesmo problema. Parece que acessar map por ref (sem VALUE()) já lhe dá um valor de entrada de mapa, ou seja, o próximo JPQL deve ser transformado em um SQL válido:
select r from Relation r join r.langMap m where ( KEY(m) = :locale and m = :value )