Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre relacionamento

No exemplo onde eu tenho o os modelos Usuario e Conta, cada Usuario tem uma Conta e uma Conta tem vários usuários, nos meus models o Usuario deve ter uma Conta ou a Conta deve ter uma lista de Usuario ou seria possivel ter os dois? Pq eu fiquei pensando se um Usuario tem uma Conta mas o model Conta não tem a lista de Usuario, se eu fizer uma query da conta eu não conseguiria acessar os usuários relacionados a partir daquele model.

1 resposta
solução!

Oi João,

O relacionamento deve ser mapeado sempre no lado que tem o ToOne, ou seja, no seu caso seria na classe Usuario.

O mapeamento do lado inverso, que seria da lista, é opcional, sendo que mesmo não mapeado você consegue recuperar as informações via query. Exemplo:

@Entity
@Table(name = "usuarios")
public class Usuario {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne
    private Conta conta;

}
@Entity
@Table(name = "contas")
public class Conta {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

}

Carregando os usuários de uma conta:

Conta conta = entityManager.find(1L, Conta.class);

List<Usuario> usuarios = entityManager
    .createQuery("SELECT u FROM Usuario u WHERE u.conta = :conta", Usuario.class)
    .setParameter("conta", conta)
    .getResultList();