2011-03-10 66 views
0

我想創建JPA-2.0以下映射使用Hibernate 3.6和MySQL 5.1:Jointable三列

Table "PIPE" 
------------ 
pipe_id (PK) 
============ 
pipe_name 
pipe_modified_date 
------------ 


Table "ALGO" 
------------ 
algo_id (PK) 
============ 
algo_name 
------------ 

表「管」可以存儲多個交易算法(多到多管之間」 「和」Algo「)。存儲列表的順序索引也很重要。應該也可以多次存儲相同的算法。

如何使用由三列組成的複合主鍵爲相應的聯接表建模?

Table "PIPE_ALGO_JT" 
--------------------- 
order_index (PK) 
pipe_id (FK PK) 
algo_id (FK PK) 
===================== 
--------------------- 

回答

1

@OrderColumn應該做的正是你想要的:

@Entity 
public class Pipe { 
    @ManyToMany 
    @JoinTable(name = "PIPE_ALGO_JT") 
    @OrderColumn(name = "order_index") 
    private List<Aglo> algos; 

    ... 
} 

儘管在由Hibernate主鍵生成將包括pipe_idorder_index模式(由於具有在主鍵algo_id是多餘的在這種情況下)。

+0

謝謝。我如何映射Algo方面? – bronogard 2011-03-10 09:20:38

+0

@bronogard:在'Algo'這邊,這個順序顯然沒有意義,所以你只需要@ManyToMany(mappedBy =「algos」)'。 – axtavt 2011-03-10 09:24:40