为什么我们使用@ForeignKey(name=“FK_COUNTRY”)注释?

我一直在休眠状态下经历一些关系的东西,我得到了这个解决方案,用于表之间的关系,我尝试了这个,它工作正常,但是当我删除@ForeignKey(name=“FK_COUNTRY”)没有任何变化,那么为什么我们使用此注释是最佳实践?


@Entity

    @Table(name = "state")

    public class State {

        @Id

        @Column(name = "id")

        private int id;


        @Column(name = "name")

        private String name;


        @ManyToOne

        @ForeignKey(name="FK_COUNTRY")

        private Country country;

    }


侃侃尔雅
浏览 151回答 2
2回答

肥皂起泡泡

休眠应该反映数据库结构,你应该阅读关于外键的重要性参照完整性更轻松的侦探工作更好的性能

郎朗坤

如果你阅读@ForeignKey的javadoc,你会发现:用于指定在架构生成生效时外键约束的处理。如果未指定此批注,则将使用持久性提供程序的默认外键策略。如果不从类定义生成数据库架构(例如 SQL 语句),则注解不起作用。CREATE TABLE
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java