在Hibernate中更改生成的外键名称

编程入门 行业动态 更新时间:2024-10-26 07:32:27
本文介绍了在Hibernate中更改生成的外键名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

@OneToOne() @JoinColumn(name =vehicle_id,referencedColumnName =vehicleId) public Vehicle getVehicle(){ return车辆; $ b我的UserDetails类与Entitity类Vehicle 。 Hibernate 创建2个表并分配一个通用外键,该外键将vehicle_id列(UserDetails表)映射到主键vehicleId(Vehicle table)。

KEY FKB7C889CEAF42C7A1(vehicle_id), CONSTRAINT FKB7C889CEAF42C7A1 FOREIGN KEY(vehicle_id)REFERENCES vehicle(vehicleId) 从JPA 2.1开始,您可以使用

解决方案

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中更改生成的外键名称

本文发布于:2023-11-12 00:57:59,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:键名   Hibernate

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!