[]Problemas de performace com Tabela Intermediária com campo adicional

Ola a todos,

      Tenho um relacionamento NxN em mãos só que não posso mapear com @ManyToMany, pois essa tabela intermediária terá um campo adicional. Ao mapear @ManyToOne em ambas as classes tenho um List de classes intermediarias. Isso não gera um problema de performace? Imagine a seguinte situação:          

      Professor trabalha em diversas escolas e cada escola possui diversos professores, um NxN tipico, contudo em cada escola o professor possui um salário diferente. Ao logar no sistema o professor vai ter na sessão uma escola quero que a class professor tenha sempre apenas um salário de acordo com a escola na sessão e não um list como está agora. Como mapear este relacionamento para que o professor apresente apenas um salário ao logar na escola?

Se fosse uma consulta por sql ela ficaria mais ou menos assim: Select s.* from Salario s where s.Escola = “Escola_logada” and s.Professor = “Professor_Logado”.

Acredito que não seja possuivel utilizar desta forma. O jeito é deixar a list como Lazy e usar Query para encontrar o estoque. É isso mesmo?