EJB3 Mapeamento 1-N e N-1 para a mesma classe: Impossível?

1 resposta
D

Gelera,

É possível um mapeamento via Annotation com EJB3 1-N e N-1 ao mesmo tempo para a mesma classe?

Resumindo: Uma instância da classse Account tem um pai, e cada pai que também é uma Account.class tem N filhos.

@Entity @Table(name="finance_account") public class Account implements Serializable { @ManyToOne @OneToMany private Account parentAccount; }

Preciso de dois atributos mapeados?

Abraços,

Davi.

1 Resposta

L

É impossível usar na mesmo atributo, por isso utiliza-se dois atributos distintos, assim:

@Entity
@Table(name="finance_account")
public class Account implements Serializable {
	
	@Id
	@Column(name="account_id") // chave primária
	private Long id;
	
	@ManyToOne
	@JoinColumn(name="account_parent_id", // id do pai, chave estrangeita
			referencedColumnName="account_id") // chave primária
	private Account parentAccount;
	
	@OneToMany(mappedBy="parentAccount") // esse não é o "dono" do mapeamento,
	                                    // usa mappedBy
	private List<Account> childAccounts;
}

Espero que ajude.

Criado 14 de outubro de 2008
Ultima resposta 14 de out. de 2008
Respostas 1
Participantes 2