2014-04-21 93 views
1

它是一个简单的问题,不会花费太多时间。OneToMany JPA注释

假设这样的:

Class A{ ... } 

Class B{ 
    @OneToMany 
    private A a; 
} 

这意味着,一个B可有许多或许多可以有一架B?

回答

1

这意味着B可有许多,你的private A a应该通过某种Collection表示,这是@OneToMany装修应包括mappedBy属性指向许多方面的相应字段/属性

public class B { 
    @OneToMany(mappedBy = "b"); 
    private Collection<A> as; 

    @Id 
    @Column(name = "B_ID") 
    private Long id; 
} 

public class A { 
    @ManyToOne 
    @JoinColumn(name = "B_ID"); 
    private B b; 
} 
+0

现在很清楚,谢谢! – Lucas

+0

正如@Elvermg所指出的那样,这是一个双向关系的例子,两个实体之间彼此相互了解,但也有单向替换,其中一个知道另一个,但反之亦然。他的回答显示了这个例子。 +1给他注意这一点。 –

1

的peeskillet提供的答案是正确的,但它使用双向关系的一个例子。这是,A级知道B类和B类知道A类 您可以在非双向关系使用:

public class B 
{ 
    @OneToMany 
    private Collection<A> a; 
} 


public class A{} 

B类知道A类,但A级不知道关于B级。

希望得到这个帮助。 :)

+0

我也在想。也谢谢你。 :) – Lucas