2014-02-26 444 views
0

上午下面的例子中創建兩個實體之間Book and BookReview。在這本書有人這樣做了OneToMany關係:映射實體

@Entity(name="Book") 
public class Book { 
.... 

@OneToMany(cascade=CascadeType.ALL) 
private List<BookReview> bookReviews; 
} 

,然後回上,參考書類是這樣的:

@Entity(name="BookReview") 
public class BookReview { 
... 
@ManyToOne(mappedBy="bookReviews") 
private Book book; 
} 

但是當我嘗試這個

@Entity 
public class Store { 

@Id 
String storeName; 

@OneToMany 
private List<Employee> employees; 

} 
//////////// 
@Entity 
public class Employee { 


@Id 
int employeeId; 

@ManyToOne(mappedBy="employees") 
private Store store; 

}

@ManyToOne(mappedBy="employees")標有一個錯誤說"The attribute mappedBy is undefined for the annotation type ManyToOne"。而且它建議我使用Eclipse使用cascade,fetch,optional,targetEntity instead.Am真糊塗here.Am之一。

回答

-1

任何不錯的JPA文檔都會告訴您,1-N bidir關係需要mappedBy與集合一方。錯誤信息也很清楚

+0

你的回答是不是很有幫助。就像你在我的[其他](http://stackoverflow.com/questions/22009499/modeling-relationships-jpa-between-如果我知道「非常明確」的錯誤的原因,我不會問這個問題。另外,我想知道爲什麼這個例子在書中的作品,並給出了一個錯誤在我的代碼中。 –

+0

「mappedBy應該位於Collection的哪一側」對您來說有點麻煩? Store有一個Collection字段,沒有「mappedBy」(但我告訴你,這是你應該把它放在哪裏,就像任何正派的JPA文檔一樣),Employee有「mappedBy」,但這是非法的(正如消息告訴您)。這本書,如果它真的說出你所說的話,會有嚴重的錯誤(並且Eclipse顯示ManyToOne中不存在這個屬性應該足以得出結論) – DataNucleus