應用程序和歷史有OneToMany:@Entity@Table(name = "app")@SuppressWarnings("serial")public class App implements Serializable { @Id @Column(name = "app_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long appId; private String name; @OneToMany(fetch = FetchType.LAZY, mappedBy = "app", cascade = CascadeType.PERSIST) private Set<History> history = new HashSet<>(); //get.set}@Entity@Table(name = "app_history")@SuppressWarnings("serial")public class History implements Serializable { @Id @Column(name = "history_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long historyId; @JoinColumn(name = "appId") @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH) private App app; //get.set}在日志中看到:create table app (app_id int8 not null, name varchar(255), primary key (app_id))create table app_history (history_id int8 not null, app_id int8, primary key (history_id))alter table app_history add constraint FKeuk3km6r7oklj5xc1ecwvxmkm foreign key (app_id) references app期望上面的行是alter table app_history add constraint FKeuk3km6r7oklj5xc1ecwvxmkm foreign key (app_id) references app (app_id)那么,(app_id)當 jpa 嘗試創建表時為什么會丟失?
2 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
問題是:您使用的是 MySQL 數據庫,但 JPA 使用的方言是針對 PostgreSQL 的:
spring:
main:
banner-mode: "off"
datasource:
url: jdbc:mysql://localhost:3306/cifi3?useSSL=false&allowPublicKeyRetrieval=true
username: tester
password: tester
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
show_sql: true
hibernate:
ddl-auto: create-drop
format_sql: true
data:
rest:
basePath: /repo
我建議你改變database-platform: org.hibernate.dialect.PostgreSQLDialect的database-platform: org.hibernate.dialect.MySQLDialect
添加回答
舉報
0/150
提交
取消