Problema - Relacionamento OneToMany Unidirecional JPA

4 respostas
java
B

Pessoal, estou com um problema na minha aplicação para criar um novo relacionamento OneToMany, tenho uma classe “ContasPagar” que está com dois relacionamentos bidirecionais com a classe “Cliente” e “Fornecedor”. Criei uma nova classe “Usuário”, não seria tanto para aplicação, mas sim em fazer alguns testes, porém não consigo fazer o relacionamento da classe Usuário com a ContasPagar, a minha dúvida seria se há restrições de fazer um novo relacionamento já que a classe ContasPagar já tem dois bidirecionais com outras classes? E como resolver esse problema?

<strong>Cliente:</strong>

@OneToMany(mappedBy=“fk_cliente”, fetch= FetchType.LAZY, cascade= CascadeType.ALL)

public List contasPagar;
<strong>ContasPagar:</strong>

@ManyToOne(optional=false)

@JoinColumn(name=“fk_cliente”)

private Cliente fk_cliente;
@ManyToOne(optional=false)

@JoinColumn(name=fornecedor_id)

private Fornecedor fornecedor_fk;
<strong>Fornecedor:</strong>

@OneToMany(mappedBy=“fornecedor_fk”, fetch= FetchType.LAZY, cascade= CascadeType.ALL)

public List contasPagar;
<strong>Usuario:</strong>

@OneToMany

@JoinColumn(name=“fk_idconta”)

private List idconta;

Não está criando o relacionamento OneToMany Unidirecional de Usuario com ContasPagar. Já configurei o persistence para criar uma nova tabela(Usuario), ele exibi no meu banco os outros atributos que criei mas não mostra a chave estrangeira da classe Usuario. Alguma solução?
Valeu.

4 Respostas

R

Para que você possa usar o @OneToMany a classe que você está referenciando, no caso a ContaPagar, precisa conter @ManyToOne, pois o ContaPagar que haverá a chave para relacionar o usuário.

B

Vi alguns exemplos que poderia fazer OneToMany Unidirecional com Join Column, mesmo sendo bidirecional ainda não está sendo criado a chave estrangeira na classe Usuário.

Usuario:

@OneToMany(mappedBy=user,fetch= FetchType.LAZY,cascade= CascadeType.ALL)

@JoinColumn(name=fk_idconta)

private List contas_id;

ContasPagar:

@ManyToOne
private Usuario user;

R

tenta inverter a chave

Usuario:

@OneToMany(mappedBy=“user”,fetch= FetchType.LAZY,cascade= CascadeType.ALL)
private List contas_id;

ContasPagar:

@ManyToOne	

@JoinColumn(name=user_fk)

private Usuario user;
B

Queria fazer a chave estrangeira na classe Usuario sem usar o @JoinTable. Alguma solução?

Criado 24 de março de 2016
Ultima resposta 25 de mar. de 2016
Respostas 4
Participantes 2