[英]Change the default names of foreign keys in one-to-many mapping : HIBERNATE
我有一個一對多映射,它將用戶(UserDetails)映射到Vehicles的ArrayList。 我想知道是否有可能覆蓋在user_details_vehicle中引用表車輛ID(vehicleid)的默認外鍵名稱
@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)
)
這只是出於學習目的。
是的,只需在
inverseJoinColumns = {@ JoinColumn(name =“ vehicle_id”)
如果您希望將其作為my_vehicle_id
then set inverseJoinColumns={@JoinColumn(name="my_vehicle_id")
您已經使用ForeignKey.name
。 將ForeignKey.inverseName
設置為另一個FK。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.