当前位置: 首页 > 面试题库 >

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

子车安和
2023-03-14
问题内容
@OneToOne()
@JoinColumn(name="vehicle_id", referencedColumnName="vehicleId")
public Vehicle getVehicle() {
    return vehicle;
}

我的UserDetails类与Entitity类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;
}


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

  • hibernate如何生成外键约束名称? 如果我不定义一个名字,Hibernate会生成这样的东西 这个名字是如何产生的?可能是从字段名散列或类似的内容?我需要知道名称是否在所有实例上都相等。

  • 我有一个一对多映射,它将用户(UserDetails)映射到车辆的ArrayList。我想知道是否可以覆盖默认的外键名,该外键名引用用户\u details\u vehicle中表vehicle(vehicleid)的id 我希望在结尾使用的create语句是: 这只是为了学习。

  • 问题内容: 我正在使用从数组生成json ,它工作正常,但照常使用数组中的key:value。但是我只想在json输出中更改键的名称..可以这样做吗?还是我应该准备json键:手动给自己赋值? 例: O / P 我想要 。 编辑:我不能编辑原始数组。。(使用framweork生成) 问题答案: 只有重写自己。您可以使用: 不确定这是否是您的目标。

  • 我是Hibernate新手,所以我对此一无所知。Hibernate会生成SQL查询并在数据库上触发。 我能够从控制台检索查询,但我也希望在触发查询之前对其进行修改。 因此,如果查询为:

  • 问题内容: 我想更改Python字典中条目的键。 有没有简单的方法可以做到这一点? 问题答案: 只需2个步骤即可轻松完成: 或第一步: 如果未定义,它将引发。请注意,这 将 删除。