JPA关系中列的自定义命名
-
03-07-2019 - |
题
当我使用hibernate与JPA建立关系时,会生成一些可怕的长而笨拙的列名。
例如。我有以下 actionPlan_actionPlanPK
,这意味着 actionPlan
列是一个指向 actionPlanPK
的FK。
为了让它在数据库中看起来更整洁,我希望自己可以给它一个名字,最好只是它拥有关系的实体类中的名称。
这可以用JPA吗?
解决方案
是。如果您对默认名称不满意,可以为列指定自己的名称。例如,在引用ActionPlan的类中,您可以指定:
@ManyToOne
@JoinColumn(name="actionplanId")
public ActionPlan getActionPlan(){
}
因此,列名称将是“actionplanid”。
其他提示
此功能是JPA规范的一部分,允许在注释中命名许多数据库结构。其中包括:
按如下方式命名表:
@Entity
@Table(name="better_table_name")
public class MyConvolutedClassName {
}
按如下方式命名列:
@Column(name="better_column_name")
private Date myConvolutedDateColumn;
命名属于关系的列:
@ManyToOne
@JoinColumn(name="better_join_column_name")
private ClassName otherModelClass;
不隶属于 StackOverflow