首先
spring.jpa.hibernate.ddl-auto=update
这里改成 none,应该就没问题,但是这里给改了的话,jpa 的便利性就失去了很多
我这里尝试了,两张表直接关联,使用 @JoinColumn 在这个里面加一句
foreignKey = @ForeignKey(value = ConstraintMode.NO_CONSTRAINT)
就能避免创建外键
但是,如果两张表中间加一张关系表,用
关联,上面的设置 foreignKey 的方式无效
请教各位大佬,有没有好的办法啊,谢谢
1
4jjqu4z6BgN4uiKj 2021-02-02 06:59:49 +08:00 via Android
@JoinTable(name = "tablea_tableb",
joinColumns = {@JoinColumn(name = "tablea_id", referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "tableb_id", referencedColumnName = "id")}, foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT)) |
2
airfling 2021-02-02 08:13:45 +08:00
spring.jpa.hibernate.ddl-auto=validate 然后自己建表,可以用 liquibase 进行数据库升级
|
3
NoKey OP @luxiang1996 感谢,确实有效。不过我这里遇到新的问题了,我写测试代码测试。有几个实体类,student,techer,然后有一张 student_techer 关联表,通过这个注解,没问题,工作正常。这个时候,我添加一个 lesson 类,就是课程,设定一个教师对应一个课程,写了一个 teacher_and_lesson 中间表。我在 teacher 中加了一个 lesson 成员,将这个注解加上去,启动完成后,teacher_and_lesson 表中会多出一个 student_id 字段。。。😭
|