簡體   English   中英

更改一對多映射中外鍵的默認名稱:HIBERNATE

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM