Имах същия проблем. Изглежда, че достъпът до карта чрез ref (без VALUE()) вече ви дава входна стойност на картата, т.е. следващият JPQL трябва да бъде трансформиран във валиден SQL:
select r from Relation r join r.langMap m where ( KEY(m) = :locale and m = :value )