hibernate - 在JPA中,什么是 referencedColumnName?

在JPA中有一个名为referencedColumnName的属性,可以在@JoinColumn, @PrimaryKeyJoinColumn上设置这个设置的概念。可以举一个例子说明在哪里使用吗?

时间:

它是用来指定另一个列作为另一个表的默认标识列的,例如,考虑以下事项


TableA
 id int identity
 tableb_key varchar


TableB
 id int identity
 key varchar unique

// in class for TableA
@Joincolumn(column="tableb_key", referencedColumnName="key")

想象一下这样的情形:汽车和人,一个人可以有许多汽车,但是只有一个汽车属于一个人(对不起,我不喜欢其他人来开我的车)。

表格人
名称char(64)主键
年龄int

表格cars
car_registration char (32 )主键
car_brand (字符64 )
car_model (char64 )
owner_name char (64 )外键引用Person (name )

当你实现类时,你将拥有


class Person{
 ...
}

class Car{
 ...
 @ManyToOne
 @JoinColumn(columnName="owner_name", referencedColumnName="name")
 private Person owner;
}

希望这个能帮到你。

API引用到 referencedColumnName 上:

这里外键列引用的列的名称。

默认( 仅在使用单一联接列时应用): 引用表的主键列相同的名称。

q/a

将被使用的地方?

当有复合pk引用表,那么你需要指定列名你引用。

...