2008-10-20 15 views
1

当我使用hibernate与JPA建立关系时,会生成一些可怕的长列和后缀列名。例如:
例如。我有以下actionPlan_actionPlanPK,这意味着列actionPlan是一个FK指向actionPlanPK
为了让它在数据库中看起来更整齐一些,我想如果我可以自己给它一个名字,最好只是它在拥有该关系的实体类中的名称。JPA关系中列的自定义命名

这与JPA可能吗?

回答

3

是的。如果您对默认名称不满意,可以为列指定自己的名称。例如,在参照ActionPlan的课程中,您可以指定:

@ManyToOne 
@JoinColumn(name="actionplanId") 
public ActionPlan getActionPlan(){ 

} 

因此,列名将是“actionplanid”。

+0

只要确保把它放在多方面。如果没有,我发现它没有工作;-) – homaxto 2008-10-21 06:23:32

3

此功能是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; 

EJB 3.0注释(包括JPA)有一个很好的(虽然不是最新的)cheatsheet )可在http://www.fnogol.de/media/ejb3.0-anno-cheat-1.2.pdf