Create Table A (
ID varchar(8),
Primary Key(ID)
);
Create Table B (
ID varchar(8),
A_ID varchar(8),
Primary Key(ID),
Foreign Key(A_ID) References A(ID)
);
既然我已經創建使用上面的SQL語句兩個表,我想創建Entity
類對他們來說,該類B
,我有這些成員屬性:Java JPA @OneToMany需要回報@ManyToOne?
@Id
@Column(name = "ID", nullable = false, length = 8)
private String id;
@JoinColumn(name = "A_ID", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false)
private A AId;
在A
類,我是否需要回報多對一的關係?
@Id
@Column(name = "ID", nullable = false, length = 8)
private String id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "AId")
private List<B> BList; //<-- Is this attribute necessary?
它是一個必要或一個好主意,有對@ManyToOne
互惠@OneToMany
?如果我現在做出設計決定忽略@OneToMany
帶註釋的屬性,那會不會再讓我進一步咬我?
+1和檢查@Pascal Thivent:您指出我可以在以後添加它,如果我需要它:那是我的主要關注點。 – bguiz 2010-05-11 06:42:20
我通常儘量避免單向映射。僅僅因爲數據庫中的某些東西是用單獨的連接表建模的(無論出於何種原因)並不意味着我的對象模型也必須這樣做。在上面的例子中,OneToOne-Mapping對於單向解決方案就足夠了(當然這必須堅持域)。 – lostiniceland 2015-08-04 09:29:49