Měl jsem stejný problém. Vypadá to, že přístup k mapě pomocí ref (bez VALUE()) vám již poskytuje hodnotu záznamu mapy, tj. další JPQL by měl být transformován na platný SQL:
select r from Relation r join r.langMap m where ( KEY(m) = :locale and m = :value )