@OneToOne Отображается как @OneToMany - PullRequest
0 голосов
/ 10 июня 2019

// @ Отношения OneToOne оказались сопоставленными как @OneToMany по данным Spring JPA / // hibernate в MySQL

@Entity
@Table(name = "product")
public class Product extends DataJournal {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private Double price;

    private Date dom;
    private Date expiryDate;

    @OneToOne(mappedBy = "product", optional = false)
    private Stock stock;
    //getters and setters
}

@Entity
@Table(name = "stock")
public class Stock extends DataJournal {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private Long quantity;
    private Long reOrderLabel;

    @OneToOne
    @JoinColumn(name="product_id")
    private Product product;
    //getters and setters
}

// Отношение между продуктом и запасом такое же, как @OneToOne, но оно сопоставлено // как @OneToMany в Mysql, ниже приведены обратная база данных mysql и // отношение [1]: https://imgur.com/a/OqC0Ddt [2]: https://imgur.com/a/3fFMuDD

1 Ответ

0 голосов
/ 10 июня 2019

Если вы разрешаете Hibernate генерировать для вас DDL, попробуйте использовать @JoinColumn(unique = true) в вашем Stock классе:

@Entity
@Table(name = "stock")
public class Stock extends DataJournal {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private Long quantity;
    private Long reOrderLabel;

    @OneToOne
    @JoinColumn(name="product_id", unique = true)
    private Product product;
    //getters and setters
}
...