jpa mysql设置了级联,但是外键不生效
程序员文章站
2022-03-02 14:58:25
...
1、驱动是innodb, 外键才生效。 修改my.ini或my.cnf,重启mysql
2、application.properties里面设置
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
3、实体类设置级联。
满足这3点,就会生成外键。
如果不想要外键,可以如下设置:
@ManyToOne()
@JoinColumn(name = "f_id",foreignKey = @ForeignKey(name = "none",value = ConstraintMode.NO_CONSTRAINT))
private Father father;
因为@JoinColumn
中的ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT)
默认是PROVIDER_DEFAULT
jpa厂商的默认行为,会根据方言设置外键关系。