JPA:给DB上的外键命名?

时间:2011-07-07 10:01:27

标签: annotations jpa-2.0

我有一个简单的问题。如何为@ ManyToOne注释产生的外键关系命名?

3 个答案:

答案 0 :(得分:4)

从JPA 2.1开始,可以通过@ForeignKey注释定义外键。

不幸的是,如果您只需要更改名称,它就不是很有用。如果指定FK的自定义名称,则还必须指定FK的SQL定义。这至少是它在EclipseLink 2.5.0中的工作方式。

答案 1 :(得分:3)

如果您对命名外键中使用的列感兴趣,可以使用@JoinColumn注释和@ManyToOne注释指定用于创建外键的列的名称。 JPA提供程序使用name注释的@JoinColumn属性的值将表中的列名映射到实体的属性。

但是,无法配置自身创建的外键约束的名称。在编写本文时,无法使用OR映射文件中的JPA注释或配置参数指定外键约束的名称。如果需要更改外键约束的名称,则必须自己创建DDL语句,而不是依赖JPA提供程序来执行此操作。

答案 2 :(得分:0)

我认为@ForeignKey不能与@JoinTables合作,或者我不知道如何设置自定义名称,我已经在@ JoinTable-> foreignKey和@ JoinColumn-> foreignKey上尝试过了