Java 更改一对多映射中外键的默认名称:HIBERNATE
我有一个一对多映射,它将用户(UserDetails)映射到车辆的ArrayList。我想知道是否可以覆盖默认的外键名,该外键名引用用户\u details\u vehicle中表vehicle(vehicleid)的idJava 更改一对多映射中外键的默认名称:HIBERNATE,java,mysql,hibernate,Java,Mysql,Hibernate,我有一个一对多映射,它将用户(UserDetails)映射到车辆的ArrayList。我想知道是否可以覆盖默认的外键名,该外键名引用用户\u details\u vehicle中表vehicle(vehicleid)的id @OneToMany @ForeignKey(name="FK_USER_DETAILS") @JoinTable(name="user_details_vehicles", joinColumns={@JoinColumn(name="user_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;
}
这只是为了学习。是的,在 inverseJoinColumns={@JoinColumn(name=“vehicle\u id”) 如果你想把它作为我的车号
then set inverseJoinColumns={@JoinColumn(name="my_vehicle_id")
您已经使用了
ForeignKey.name
。设置ForeignKey.inverseName
来命名另一个FK。谢谢,但我说的是默认生成的外键。示例Hibernate为外键生成了键FKE74E2618AF42C7A1。我想覆盖默认名称以使其更有意义。如果您好,这听起来不对bernate正在创建表,列是根据您的映射命名的,但是您告诉我hibernate默认创建了FKE74E2618AF42C7A1列?不,先生,我说的是外键的名称,不是列。
then set inverseJoinColumns={@JoinColumn(name="my_vehicle_id")