2016-07-19 16 views
3

たとえば、@OneToManyのmappedByアノテーションを使用すると、クラス名またはテーブル名について言及しましたか?mappedByはクラス名またはテーブル名を参照していますか?

exemple:

@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; } 

} 

したがって、これら2の正しいでしょうか? :

  • @OneToMany(mappedBy = "れるcustomer_tab")
  • @OneToMany(mappedBy = "顧客")?

ありがとうございます!

答えて

3

どちらも正しくありません。

mappedBy
パブリック抽象java.lang.StringでmappedBy
関係を所有しているフィールド:documentationから。関係が一方向でない場合は必須です。

mappedBy注釈は、ラベルフィールドがあなたの例では、関係の反対側で1対多の関係の反対側を所有していることを示しています。私はあなたのスキーマが何であるかは正確には分かりませんが、次のクラス定義は意味をなさないでしょう:

@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

関連する問題