Oi Luan,
Não é obrigatório mapear o lado inverso da relação, que no exemplor seria o OneToMany
.
Quando esse mapeamento dos dois lados é feito, o chamamos de relacionamento bidirecional.
Mas ele só é recomendado se houver uma necessidade para simplificar um código, pois pode levar a alguns problemas.
Aqui tem um post bacana falando sobre esses problemas: http://blog.triadworks.com.br/jpa-por-que-voce-deveria-evitar-relacionamento-bidirecional O post utiliza como exemplo o Hibernate do Java, mas a ideia é a mesma.
No exemplo que você citou, entre UF
e Endreço
, realmente o mais lógico é mapear de Endereço para UF, via relacionamento ManyToOne
, pios afinal no banco de dados a tabela de endereços é que contem a FK para a tabela de UF.
Mas imagine que na aplicação você tenha um necessidade de exibir todos os endreços de uma determinada UF. Se na entidade UF tivesse mapeado o relacionamento OneToMany para os endereços, bastaria acessar a propriedade enderecos da entidade UF.
Se não houvesse o relacionamento OneToMany, seria necessario criar uma nova consulta para buscar os enderecos filtrando pela UF.
Ou seja, embora seja possível não precisar do mapeamento bidirecional, as vezes com ele algumas funcionalidades seriam mais simples de implementar.
Tudo depende da necessidade, mas no geral eu recomendo evitar os relacionamentos bidirecionais, devidos a eles não serem obrigatórios e também devido aos problemas que eles podem trazer.
Bons estudos!