2016-07-19 34 views
3

當我們在@OneToMany中使用mappedBy註釋時,我們是否提到了類名或表名?mappedBy是指類名或表名?

個例:

@Entity 
@Table(name = "customer_tab") 
public class Customer { 
    @Id @GeneratedValue public Integer getId() { return id; } 
    public void setId(Integer id) { this.id = id; } 
    private Integer id; 

    @OneToMany(mappedBy="customer_tab") 
    @OrderColumn(name="orders_index") 
    public List<Order> getOrders() { return orders; } 

} 

所以這兩個是正確的? :

  • @OneToMany(的mappedBy = 「customer_tab」)
  • @OneToMany(的mappedBy = 「客戶」)?

謝謝!

回答

3

兩者都不正確。從documentation

的mappedBy
公共抽象java.lang.String中的mappedBy
擁有該關係的字段。除非關係是單向的,否則是必需的。

mappedBy註釋表明它所標記的字段擁有關係的另一方,在您的示例中是一對多關係的另一方。我不確切知道你的模式是什麼,但是下面的類定義是有意義的:

@Entity 
@Table(name = "customer_tab") 
public class Customer { 
    @OneToMany(mappedBy="customer") 
    @OrderColumn(name="orders_index") 
    public List<Order> getOrders() { return orders; } 

} 

@Entity 
public class Customer { 
    @ManyToOne 
    @JoinColumn(name = "customerId") 
    // the name of this field should match the name specified 
    // in your mappedBy annotation in the Customer class 
    private Customer customer; 
} 
+0

啊!這就是爲什麼我得到註釋錯誤!謝謝 – taboubim

相關問題