在Hibernate中,要指定加入关联的列,可以使用@JoinColumn注解,例如这样:
@ManyToOne
@JoinColumn(name="address_id")
public Address getAddress() {
return address;
}
在大多数情况下,列的名称是蛇形的类名加上 _id
。因此,期望 Hibernate 自动派生它是合理的(例如,在 Django 的 ORM 中就是这样做的)。但这种行为是否以某种方式实现了?
最佳答案
这不是必需的,JPA遵循约定优于配置的原则,这意味着总有一些默认值可以用注释覆盖。
如果是@JoinColumn
,默认列名生成如下:<field_name>_<id_column_name>
field_name
是 address
在你的情况下,和 id_column_name
指的是相关实体的id,即id
。因此,你得到address_id
默认情况下。
关于java - @JoinColumn 注解在 Hibernate 中是强制的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788151/