Pergunta

Eu tenho 2 tabelas:

A
s_id(key) name cli type

B
sa_id(key) s_id user pwd

Então, em JPA, eu tenho:

@Entity
class A...{
   @OneToMany(fetch=FetchType.EAGER)
    @JoinTable( name="A_B", 
    joinColumns={@JoinColumn(name="a_id", table="a",unique=false)}, 
    inverseJoinColumns={@JoinColumn(name="b_id", table="b", unique=true)} )
   Collection<B> getB(){...}
}

A classe B é apenas uma classe de entidade básica, sem referência a A.

Espero que isso esteja claro. Minha pergunta é: eu realmente preciso de uma tabela de junção para fazer uma junção tão simples? Isso não pode ser feito com um simples juncolumn ou algo assim?

Foi útil?

Solução

Você não precisa de um articável para isso. Se a classe B não tiver referência à classe A, o seguinte será suficiente

@Entity class A...{ 
@OneToMany(fetch=FetchType.EAGER)     
Collection getB(){...} }

Na maioria dos casos, você pode querer um relacionamento bidirecional, caso em B tem uma referência a A. Nesse caso, você precisará procurar a anotação @Mappy. mencionado por Paul.

Outras dicas

Não, você não precisa de uma mesa de junção para Onetomany. Olhe para a anotação @mappby

A resposta rápida é que, se você tiver um relacionamento muitos para muitos, precisará de outra tabela. Se você tem um relacionamento um para muitos ou muitos para um, não terá.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top