使用JPA创建表

时间:2019-02-15 09:29:02

标签: mysql spring-boot jpa spring-boot-test

我正在使用Spring Boot和JPA创建两个表:

公寓桌子: id,名称,address_id,网站

地址表: id,street_num,街道,城市.....

address_id应该是外键,并指向地址表中的id。

我无法使代码正常工作。这是我的两个Entity类:

Apartment.java:

//this takes several hours to deliver the desired output
DT_large %>% mutate_at(vars(matches("_E")),
                 funs(ifelse(
         DT_large$.>quantile(
                 DT_large$.,probs=0.80),quantile(
                 DT_large$.,probs=0.80),DT_large$.)))

Address.java:

@Entity
public class Apartment {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    private String name;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinTable(name = "address",
            joinColumns = @JoinColumn(name = "apt_id"))
    private Address address;

    private String website;
    //getters and setters

我得到的是地址表中一个名为address_id的额外列...。而公寓表中却缺少address_id...。

非常感谢!

1 个答案:

答案 0 :(得分:0)

通过外键关联休眠一对一映射

在这种关联中,在所有者实体中创建了一个外键列 连接列用@JoinColumn注释声明,该注释看起来像@Column注释。它还有一个名为referencedColumnName的参数。此参数在目标实体中声明将用于联接的列。

以此替换您的公寓房:

@Entity
public class Apartment {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;

private String name;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "apt_id"))
private Address address;

private String website;
//getters and setters