为了账号安全,请及时绑定邮箱和手机立即绑定

jpa 引用外部表而不是 JoinColumn 中的外部列

jpa 引用外部表而不是 JoinColumn 中的外部列

潇湘沐 2021-12-30 17:17:47
应用程序和历史有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 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

改变你的

@JoinColumn(name = "appId")

@JoinColumn(name = "app_id")

这应该有效。


查看完整回答
反对 回复 2021-12-30
?
明月笑刀无情

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


查看完整回答
反对 回复 2021-12-30
  • 2 回答
  • 0 关注
  • 213 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号