我想使用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)
=====================
---------------------
答案 0 :(得分:1)
@OrderColumn
应该完全符合您的要求:
@Entity
public class Pipe {
@ManyToMany
@JoinTable(name = "PIPE_ALGO_JT")
@OrderColumn(name = "order_index")
private List<Aglo> algos;
...
}
虽然在Hibernate主键生成的模式中,主键由pipe_id
和order_index
组成(因为在这种情况下,主键中的algo_id
是多余的)。