1

我有一个一对多的映射,它将用户(UserDetails)映射到车辆的 ArrayList。我想知道是否可以覆盖引用 user_details_vehicle 中表车辆 (vehicleid) id 的默认外键名称

@OneToMany
@ForeignKey(name="FK_USER_DETAILS")
@JoinTable(name="user_details_vehicles",
    joinColumns={@JoinColumn(name="user_id")},
    inverseJoinColumns={@JoinColumn(name="vehicle_id")
    }
)
public Collection<Vehicle> getVehicles() {
  return vehicles;
}

我最后想要的创建语句是:

CREATE TABLE user_details_vehicles (
 user_id int(11) NOT NULL,
 vehicle_id int(11) NOT NULL,
 UNIQUE KEY vehicle_id (vehicle_id),
 KEY FK_USER_DETAILS (user_id),
 KEY FK_VEHICLE (vehicle_id),
 CONSTRAINT FK_VEHICLE FOREIGN KEY (vehicle_id) REFERENCES vehicle (vehicleId),
 CONSTRAINT FK_USER_DETAILS FOREIGN KEY (user_id) REFERENCES user_details (user_id)
) 

这仅用于学习目的。

4

2 回答 2

0

是的,只需将其更改为

inverseJoinColumns={@JoinColumn(name="vehicle_id")

如果你想要它作为 my_vehicle_id

then set inverseJoinColumns={@JoinColumn(name="my_vehicle_id")
于 2013-05-15T18:23:52.487 回答
0

您已经使用ForeignKey.name. 设置ForeignKey.inverseName为其他 FK 的名称。

于 2013-05-15T19:29:34.210 回答