【发布时间】:2013-05-10 00:13:52
【问题描述】:
@OneToOne()
@JoinColumn(name="vehicle_id", referencedColumnName="vehicleId")
public Vehicle getVehicle() {
return vehicle;
}
我的 UserDetails 类与实体类 Vehicle 具有一对一的映射关系。 Hibernate 创建 2 个表并分配一个通用外键,它将 vehicle_id 列(UserDetails 表。)映射到主键 vehicleId(Vehicle 表)。
KEY FKB7C889CEAF42C7A1 (vehicle_id),
CONSTRAINT FKB7C889CEAF42C7A1 FOREIGN KEY (vehicle_id) REFERENCES vehicle (vehicleId)
我的问题是:我们如何将生成的外键更改为有意义的东西,例如 Fk_userdetails_vehicle。
【问题讨论】:
-
@Ashok_udhay 由于与外键有关的错误通常只会导致外键的名称被数据库吐出,因此命名键可以让您了解键的用途,而无需首先在您的数据库创建脚本中跟踪它。
-
只是为了好奇(而且可能太明显而无法说明);众所周知,Hibernate 使用表和属性名称来生成其约束/外键名称 (source);所以看似“随机”的名称实际上将保持不变,除非您实际更改架构。 MD5 步骤使最终结果“没有意义”,或者更确切地说是“人类不可读”。