Как сохранить количество объектов в данных Spring - PullRequest
0 голосов
/ 29 апреля 2020

Описание

У меня есть система, в которой я могу добавить Component и сохранить ее в БД (Mysql). После этого можно создать Product, который содержит Components в разном количестве. Как я понимаю, таблица должна иметь вид component_id|product_id|amount_of_component

Класс компонента:

@Entity
@Table(name = "component")
public class Component {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;
}

Класс продукта:

@Entity
@Table(name = "product")
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;

  //something should be here
    private Component component;

}

Вопрос

Какую аннотацию или коллекцию я должен использовать для создания таких отношений между этими объектами?

1 Ответ

0 голосов
/ 29 апреля 2020

Вы должны использовать OneToMany с Set или List. Вот пример:

@OneToMany
@JoinColumn("product_id")
private Set<Component> component;

Пожалуйста, прочтите документацию Hibernate о сопоставлении коллекций: https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#collections

...