javax / persistence / ForeignKey.htmlrel =noreferrer> @ javax.persistence.ForeignKey 注释:
@OneToOne() @JoinColumn(name =vehicle_id,referencedColumnName =vehicleId,foreignKey = @ ForeignKey(name =Fk_userdetails_vehicle)) public Vehicle getVehicle(){ return车辆; }在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; }@OneToOne() @JoinColumn(name="vehicle_id", referencedColumnName="vehicleId") public Vehicle getVehicle() { return vehicle; }
My UserDetails class has a one-to-one mapping with the Entitity class Vehicle. Hibernate creates the 2 tables and assigns a generic Foreign Key, which maps the vehicle_id column (UserDetails table.) to the primary key vehicleId (Vehicle table).
KEY FKB7C889CEAF42C7A1 (vehicle_id), CONSTRAINT FKB7C889CEAF42C7A1 FOREIGN KEY (vehicle_id) REFERENCES vehicle (vehicleId)My question is : how do we change this generated foreign key, into something meaningful, like Fk_userdetails_vehicle for example.
解决方案Since JPA 2.1, you can use the @javax.persistence.ForeignKey annotation:
@OneToOne() @JoinColumn(name="vehicle_id", referencedColumnName="vehicleId", foreignKey=@ForeignKey(name = "Fk_userdetails_vehicle")) public Vehicle getVehicle() { return vehicle; }Prior to JPA 2.1, you could use Hibernate’s @org.hibernate.annotations.ForeignKey annotation, but this is now deprecated:
@OneToOne() @JoinColumn(name="vehicle_id", referencedColumnName="vehicleId") @ForeignKey(name="Fk_userdetails_vehicle") public Vehicle getVehicle() { return vehicle; }
更多推荐
在Hibernate中更改生成的外键名称
发布评论