可连接三列

时间:2011-03-10 08:52:37

标签: hibernate jpa

我想使用Hibernate 3.6和MySQL 5.1在JPA-2.0中创建以下映射:

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


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

“管道”表可以存储多个算法(“管道”和“算法”之间的多对多)。存储列表的订单索引也很重要。也应该可以多次存储相同的算法。

如何使用由三列组成的复合主键对相应的连接表建模?

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

1 个答案:

答案 0 :(得分: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是多余的)。