当前位置: 首页 > 知识库问答 >
问题:

更改一对多映射中外键的默认名称:HIBERNATE

方和顺
2023-03-14

我有一个一对多映射,它将用户(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")},
    inverseJoinColumns={@JoinColumn(name="vehicle_id")
    }
)
public Collection<Vehicle> getVehicles() {
  return vehicles;
}

我希望在结尾使用的create语句是:

CREATE TABLE user_details_vehicles (
 user_id int(11) NOT NULL,
 vehicle_id int(11) NOT NULL,
 UNIQUE KEY vehicle_id (vehicle_id),
 KEY FK_USER_DETAILS (user_id),
 KEY FK_VEHICLE (vehicle_id),
 CONSTRAINT FK_VEHICLE FOREIGN KEY (vehicle_id) REFERENCES vehicle (vehicleId),
 CONSTRAINT FK_USER_DETAILS FOREIGN KEY (user_id) REFERENCES user_details (user_id)
) 

这只是为了学习。

共有2个答案

罗翔
2023-03-14

是的,只要换个地方就行了

InverseJoinColns={@JoinColiv(name="vehicle_id")

如果你想把它作为我的车号

then set inverseJoinColumns={@JoinColumn(name="my_vehicle_id")
齐雅畅
2023-03-14

您已经使用了ForeignKey.name。设置ForeignKey.inverseName来命名另一个FK。

 类似资料:
  • 问题内容: 我有一个表,其中父对象具有可选的多对一关系。问题在于该表已设置为默认将fkey列设置为0。 选择时,使用fetch =“ join”等-fkey的默认值0被用来反复尝试从另一个表中选择ID0。当然这不存在,但是我怎么能告诉Hibernate将0的值与NULL相同- 在获取不存在的关系时不循环20多次以上? 问题答案: 我能够通过创建一个id- long类型来解决此问题,该类型扩展了内置

  • 问题内容: 我的UserDetails类与Entitity类Vehicle具有一对一的映射。创建2个表并分配一个通用外键,该键将vehicle_id列(UserDetails表)映射到主键vehicleId(Vehicle表)。 我的问题是:如何将生成的外键更改为有意义的内容,例如Fk_userdetails_vehicle。 问题答案: 从JPA 2.1开始,您可以使用@ javax.persi

  • 我的UserDetails类与Entitity类Vehicle有一个一对一的映射。创建两个表并分配一个泛型外键,该外键映射vehicle_id列(UserDetails表)至主键vehicleId(Vehicle table)。 我的问题是:我们如何将这个生成的外键改变成有意义的东西,比如Fk_userdetails_vehicle。

  • 我使用此链接中的以下代码为我的一个数据模型类(JSON到JAXB模型的转换)添加自定义反序列化程序。 我想使用com。fasterxml。杰克逊。jaxrs。json。JacksonJaxbJsonProvider,用于其他数据模型的JSON序列化/反序列化。 JacksonJaxbJsonProvider的默认实现非常适合我的JAXB模型,将超类作为抽象类。但是,一旦我提供了自己的自定义Obje

  • 我看到生成的代码使用方法将转换为,但我希望使用方法。是否可以“全局”配置它?

  • 问题内容: 我正在尝试建立一个PostgreSQL表,该表具有两个指向另一个表中相同主键的外键。 运行脚本时出现错误 sqlalchemy.exc.AmbiguousForeignKeysError:无法确定关系Company.stakeholder的父/子表之间的联接条件- 有多个链接表的外键路径。指定“ foreign_keys”参数,提供这些列的列表,这些列应被视为包含对父表的外键引用。 那