Mapeamento Objeto-Relacional - ManyToMany com atributos

Olá, boa tarde.

Tenho um MER já feito e preciso converte-lo em objetos e estou com uma dúvida.

Existem as seguintes tabelas no banco de dados:

Usuario
int UsuarioID
varchar Nome

Filial
int FilialID
varchar Nome

Nivel
int NivelID
varchar Nivel

UsuarioFilial
int UsuarioID
int FilialID
int NivelID

Como represento essa tabela associativa (UsuarioFilial) nos objetos sendo que um usuario pode ter
várias filiais e para esta associação tenho o atributo de Nivel?

Fiz o seguinte:

class Usuario
{
int UsuarioID;
string Nome;
List Filiais;
}

class Filial
{
int FilialID;
string Nome;
Nivel Nivel;
}

class Nivel
{
int NivelID;
string Nome;
}

Mas não fica estranho colocar um atributo do tipo Nivel na classe Filial,
uma vez que elas existem separadamente e apenas tem relação no relacionamento com usuario?

Qual é a melhor solução para este cenário?

Muito obrigado!

Conheço uma forma de fazer:
Vc precisa instalar o exadel depois configura-lo para que o hibernate mapei suas tabelas do BD para o eclipse (por exemplo) e gere as classes de persistencia e os arquivos .xml

Poutz, valeu hvivox, mas eu não estou usando hibernate… na verdade a minha dúvida é como construir essas
classes e onde ficar cada atributo seguindo a POO… Eu devo criar um atributo Nivel dentro
dentro de Filial? Ou crio uma classe FilialUsuario que herda de Filial e tem o atributo
Nivel?

Como uma classe não depende diretamente da outra, ou seja Filial, vive sem Nivel e vice-versa,
elas só tem esse relacionamento quando assossiadas ao usuario. Ou seja, quando eu crio uma Filial eu não
atribuo um nivel a ela, entende? Mas quando eu relaciono um usuario a uma filia, ele vai ter um nivel para
akela filial…

poutz, deu nó agora! meio confuso, nhé? hahahha! :?