当我生成表格时,它会生成它,但JPA不生成任何FK。
当我告诉mysql向我展示创建表时它做了什么时,它显示缺少外键约束。它只生成KEY,而不是添加外键。
的MySQL> show create table view_display;
| view_display | CREATE TABLE
view_display
(dtype
varchar(31)NOT NULL,id
bigint(20)NOT NULL,col
int(11)NOT NULL,row
int(11)NOT NULL,chart_id
bigint(20)DEFAULT NULL,view_id
bigint(20)NOT NULL,data_source_id
bigint(20)DEFAULT NULL, PRIMARY KEY(id
), KEYFKqllm025dtc51xf38qdr5je52q
(chart_id
), KEYFKb1gu01sld2cm281oa88pjq9ia
(view_id
), KEYFK2hljr3ohtf3vql7hhvyqbm2mc
(data_source_id
) )ENGINE = MyISAM DEFAULT CHARSET = latin1 |
View.java
@Entity
@Table(name="view")
public class View {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "view_seq")
@SequenceGenerator(name = "view_seq", sequenceName = "view_seq", allocationSize = 1)
private Long id;
private String name;
@Column(name ="is_default",nullable= false,columnDefinition="tinyint(1) default 0")
private boolean isDefault;
@ManyToOne
@JoinColumn(name="userId",insertable=true, updatable= false,nullable=true)
private User user;
@OneToOne
@JoinColumn(name="cvId",insertable=true, updatable= false,nullable=true,unique=true)
private CV cv;
@OneToMany(mappedBy="view")
private List<ViewDisplay> viewDisplay;
// getters and setters....
}
ViewDisplay.java
@Entity
@Table(name = "view_display")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class ViewDisplay {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "view_display_seq")
@SequenceGenerator(name = "view_display_seq", sequenceName = "view_display_seq", allocationSize = 1)
private Long id;
@ManyToOne
@JoinColumn(name="chartId",insertable=true, updatable= true, nullable = true)
private Chart chart;
@ManyToOne
@JoinColumn(name = "viewId", insertable = true, updatable = true, nullable=false)
private View view;
private int col;
private int row;
public ViewDisplay() {}
public ViewDisplay(Long id, Chart chart, View view, int col, int row) {
super();
this.id = id;
this.chart = chart;
this.view = view;
this.col = col;
this.row = row;
}
// getters and setters...
}