2010-01-26 71 views
1

我試圖用hibernate映射@ManyToMany關聯。但到目前爲止,我只能設法在其中一個外鍵上級聯。如何在兩個外鍵上設置與級聯的Hibernate @ManyToMany關聯?

我的源代碼是這樣的:

@Entity 
public class Airplane { 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Long id; 

    @OnDelete(action=OnDeleteAction.CASCADE) 
    @ManyToMany(mappedBy="airplanes", cascade = {CascadeType.ALL}) 
    private Set<Passenger> passengers; 
... 
} 

@Entity 
public class Passenger { 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Long id; 

    @OnDelete(action=OnDeleteAction.CASCADE) 
    @ManyToMany(cascade = {CascadeType.ALL}) 
    private Set<Airplane> airplanes; 
... 
} 

hibernatetool輸出:

create table Airplane (
    id bigint not null auto_increment, 
    objVersion bigint, 
    primary key (id) 
) type=InnoDB; 

create table Passenger (
    id bigint not null auto_increment, 
    objVersion bigint, 
    primary key (id) 
) type=InnoDB; 

create table Passenger_Airplane (
    passengers_id bigint not null, 
    airplanes_id bigint not null, 
    primary key (passengers_id, airplanes_id) 
) type=InnoDB; 

alter table Passenger_Airplane 
    add index FKC9262997C1630114 (airplanes_id), 
    add constraint FKC9262997C1630114 
    foreign key (airplanes_id) 
    references Airplane (id) 
    on delete cascade; 

alter table Passenger_Airplane 
    add index FKC92629979BEE2B2 (passengers_id), 
    add constraint FKC92629979BEE2B2 
    foreign key (passengers_id) 
    references Passenger (id); 

不知何故客運類@OnDelete(動作= OnDeleteAction.CASCADE)註釋由休眠丟棄。

回答

0

嗯,不知道這個工程。請參閱HHH-4404中的非常舊的comment