2014-04-19 108 views
0

您好!最近我遇到了這樣的問題,我希望下面提供的解決方案能夠幫助像我這樣的其他JPA新手。如果有更好的解決方案,請在此發佈!如何映射超類的OneToMany關係

的問題如下:

我想創建類BookCDTag一對多關係。 爲了從BookCD統一所有關於Tag類的邏輯創建@MappedSuperclassItem,使ItemBookCD後裔。但是,當我嘗試 List <Tag> 標籤與@OneToMany」在超我什麼也沒得到很好的地圖..

回答

0

我的解決辦法:

爲了做一個ORM映射先要了解他其實什麼想要在數據庫中看到。所以當我意識到合理的解決方案是在ItemTag的後代之間創建幾個轉換表時,我明白這可以使用@ManyToMany來完成。它工作正常!
下面列表。

@MappedSuperclass 
public class Item extends Model { 
    @Id 
    public Long id; 
    @ManyToMany(cascade = CascadeType.ALL) 
    public List<Tag> tags; 
    public String name; 
    <…> }  
@Entity 
public class Book extends Item { 
    public int pageNum; 
    <…> } 
@Entity 
public class CD extends Item{ 
    public int size; 
    <…> } 
@Entity 
public class Tag extends Model{ 
    @Id 
    public Long id; 
    public String text; 
    <…> } 

PS我還張貼類和ER圖,但目前我沒有r8n張貼圖片。