我有一对多的映射,它将用户(UserDetails)映射到Vehicle的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语句是:
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)
)
这仅用于学习目的。
答案 0 :(得分:0)
是的,只需在
中更改即可inverseJoinColumns = {@ JoinColumn(名称= “vehicle_id”)
如果你想将它作为my_vehicle_id
then set inverseJoinColumns={@JoinColumn(name="my_vehicle_id")
答案 1 :(得分:0)
您已使用ForeignKey.name
。设置ForeignKey.inverseName
以命名其他FK。