@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。
最佳答案
从 JPA 2.1 开始,您可以使用 @javax.persistence.ForeignKey注释:
@OneToOne()
@JoinColumn(name="vehicle_id", referencedColumnName="vehicleId", foreignKey=@ForeignKey(name = "Fk_userdetails_vehicle"))
public Vehicle getVehicle() {
return vehicle;
}
在 JPA 2.1 之前,您可以使用 Hibernate 的 @org.hibernate.annotations.ForeignKey注释,但现在已弃用:
@OneToOne()
@JoinColumn(name="vehicle_id", referencedColumnName="vehicleId")
@ForeignKey(name="Fk_userdetails_vehicle")
public Vehicle getVehicle() {
return vehicle;
}
关于java - 在 Hibernate 中更改生成的外键名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16564789/