Java 如何在中间表中映射具有一个额外列的集合
我正在尝试将对象映射到下面的联接表,Java 如何在中间表中映射具有一个额外列的集合,java,hibernate,many-to-many,Java,Hibernate,Many To Many,我正在尝试将对象映射到下面的联接表, 表名:预订\u pax 3列:预订id,旅客id,旅客无需参加旅游 主键:预订id,乘客id 外键:预订id参考预订表,乘客id参考乘客表 CREATE TABLE `booking_pax` ( `booking_id` int(8) unsigned NOT NULL, `pax_id` int(8) unsigned NOT NULL, `pax_numb_in_tour` int(2) unsigned DEFAULT NULL, P
表名:预订\u pax
3列:预订id,旅客id,旅客无需参加旅游
主键:预订id,乘客id
外键:预订id参考预订表,乘客id参考乘客表
CREATE TABLE `booking_pax` (
`booking_id` int(8) unsigned NOT NULL,
`pax_id` int(8) unsigned NOT NULL,
`pax_numb_in_tour` int(2) unsigned DEFAULT NULL,
PRIMARY KEY (`booking_id`,`pax_id`),
KEY `booking_booking_pax` (`booking_id`),
KEY `pax_booking_pax` (`pax_id`),
CONSTRAINT `booking_booking_pax` FOREIGN KEY (`booking_id`) REFERENCES `booking` (`booking_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `pax_booking_pax` FOREIGN KEY (`pax_id`) REFERENCES `pax` (`pax_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
)
我有两个实体:pax和booking。由于关系是多个,因此需要在此联接表中添加一个额外的列。现在我无法使用Hibernate进行映射 建模:
@Entity
public class Booking {
......
@ManyToMany
@JoinTable(
name="booking_pax",
joinColumns={@JoinColumn(name="booking_id")},
inverseJoinColumns={@JoinColumn(name="pax_id")}
)
//@ElementCollection
//@Column(name="pax_numb_in_tour")
public Map<Pax, Integer> getPaxs() {
return paxs;
}
......
}
我尝试了很多方法来绘制藏品的地图,但仍然不起作用。
我使用的IDE是带有Javee5的MyEclipse 8.6。我试图升级到JavaEE6,但失败了
谢谢。未经测试:
@ElementCollection
@CollectionTable(
name="booking_pax",
joinColumns={@JoinColumn(name="booking_id")}
)
@Column(name="pax_numb_in_tour")
@MapKeyJoinColumn(name="pax_id")
public Map<Pax, Integer> getPaxs() {
return paxs;
}
@ElementCollection
@收集表(
name=“预订”,
joinColumns={@JoinColumn(name=“booking_id”)}
)
@列(name=“pax\u numb\u in\u tour”)
@MapKeyJoinColumn(name=“pax_id”)
公共映射getPaxs(){
返回PAX;
}
@ElementCollection
@CollectionTable(
name="booking_pax",
joinColumns={@JoinColumn(name="booking_id")}
)
@Column(name="pax_numb_in_tour")
@MapKeyJoinColumn(name="pax_id")
public Map<Pax, Integer> getPaxs() {
return paxs;
}