数据库
首页 > 数据库> > Hibernate配置entity关联关系不生成数据库外键

Hibernate配置entity关联关系不生成数据库外键

作者:互联网

两种方案
一、使用@org.hibernate.annotations.ForeignKey(name=“none”)
该注解已废弃
二、使用@JoinColumn(name=“frame_id”,foreignKey = @ForeignKey(name=“none”,value= ConstraintMode.NO_CONSTRAINT))
ForeignKey是javax.persistence包下的,该方案有缺陷:
1)oneToMany一方不配置(没有这一属性
2)如果存在oneToMany配置则需要使用方案1中的注解
否则还是会生成外键关系

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "taste_group_id", insertable = false, updatable = false)
    @Fetch(FetchMode.SUBSELECT)
    @org.hibernate.annotations.ForeignKey(name = "none")
    @JsonIgnore
    @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
    @JoinColumn(name = "taste_group_id", insertable = false, updatable = false, foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))
    @NotFound(action = NotFoundAction.IGNORE)
    @JsonIgnore

标签:none,Hibernate,false,name,ForeignKey,外键,entity,JoinColumn,id
来源: https://blog.csdn.net/qq_45055165/article/details/121047827