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