【发布时间】:2018-09-08 11:12:59
【问题描述】:
我的代码如下。我正在使用带有 jpa 和 postgresql 数据库的 spring boot 我需要用户友好的名称作为外键。
@实体 @Table(name="course_table") 公共类课程扩展 BaseAuditingEntity { @ManyToMany(级联 = CascadeType.REMOVE,获取 = FetchType.EAGER) @JoinTable(name = "course_program_table", joinColumns = @JoinColumn(name = "course_id", referencedColumnName = "course_id", foreignKey = @ForeignKey(name = "fk_program_id")), inverseJoinColumns = @JoinColumn(name = "program_id", referencedColumnName = "program_id", foreignKey = @ForeignKey(name = "fk_course_id"))) 私人名单程序; }我已经使用 @ForeignKey 注释给出了外键的名称,但是当我看到 db 时,它显示的是随机创建的外键名称。
创建表 course_program_table ( course_id 整数 NOT NULL, program_id 整数 NOT NULL, 约束 fk_28c95hl4nqclyvyxuduei5nbf 外键(program_id) 参考 public.program_table (program_id) MATCH SIMPLE 更新无动作 在不删除任何操作时, 约束 fk_5sainywquv8yyu24pjk3jptn7 外键(course_id) 参考 public.course_table (course_id) MATCH SIMPLE 更新无动作 删除无操作 )我需要注释中提到的外键,如 fk_program_id 和 fk_course_id。
提前致谢。
【问题讨论】:
-
hibernate 是否生成了该表?您甚至不需要在代码中指定 FK。这纯粹是可选的
-
是的,Hibernate 正在生成表,但我希望 FK 的名称如注释中所述。
-
查看此链接。可能与stackoverflow.com/questions/16564789/… 重复
-
您是否尝试过明确指定
@ForeignKey而不是将其嵌套在其他注释中? -
是的,我已经尝试过该解决方案,但它不起作用。
标签: java spring hibernate spring-boot jpa