У меня есть 3 таблицы в базе данных.JPA Join Column
Первый (категории) включает в себя: идентификатор категории, IsActive
Второй один (меню) включает в себя: ParentID и childid.
Третий (элементы) включает в себя: идентификатор, имя и цену.
Первый стол имеет отношения со вторым. Я хочу сделать отношения между вторым и третьим сейчас.
Вторая таблица имеет следующие значения в базе данных:
- 7 (ид), Книга1 (имя), 120 (цена)
- 7 (идентификатор), book2 (имя), 100 (цена)
- 8 (ID), car1 (имя), 1620 (цена)
- 8 (ID), car2 (имя), 520 (цена)
- 8 (ID), car3 (имя), 5520 (цена)
- 9 (id), house1 (наименование), 10000 (цена)
- 9 (идентификатор), Дом2 (имя), 11 000 (цена)
- 9 (идентификатор), house3 (имя), 15000 (цена)
На данный момент я присоединился к колонку childid колонки идентификатору ,
Menu.java
@EmbeddedId MenuId id;
@Column(name="PARENTID")
private Integer parentid;
@Column(name="CHILDID")
private Integer childid;
@OneToOne
@JoinColumn(name="CHILDID",referencedColumnName="ID")
private Categories subcategories;
public Categories getSubcategories() {
return this.subcategories;
}
public void setSubategories(Categories subcategories) {
this.subcategories = subcategories;
}
@OneToOne
@JoinColumn(name="PARENTID", referencedColumnName="ID")
private Categories categories;
public Categories getCategories() {
return this.categories;
}
public void setCategories(Categories categories) {
this.categories = categories;
}
@OneToOne
@JoinColumn(name="CHILDID",referencedColumnName="ID")
private Items items;
public Items getItems() {
return this.items;
}
public void setItems(Items items) {
this.items = items;
}
Items.java не имеет каких-либо изменений, также как subcategories.java
Я использую объект JSON для распечатки моих значений:
jsonObject.put("parentid", menu.getParentid());
jsonObject.put("childid", menu.getChildid());
jsonObject.put("categories", menu.getCategories().getCategory());
jsonObject.put("subcategories", menu.getSubcategories().getCategory());
jsonObject.put("itemid", menu.getItems().getId());
jsonObject.put("product", menu.getItems().getProduct());
jsonObject.put("brand", menu.getItems().getBrand());
jsonObject.put("sum", menu.getItems().getSum());
Он работает, но это работает не так, как я себе представляю в своем проекте. Он печатает только те же значения:
- 7 (ID), Книга1 (имя), 120 (цена)
- 7 (идентификатор), BOOK1 (имя), 120 (цена)
- 8 (ID) , car1 (имя), 1620 (цена)
- 8 (ID), car1 (имя), 1620 (цена)
- 8 (ID), car1 (имя), 1620 (цена)
- 9 (идентификатор), дом1 (имя), 10000 (цена)
- 9 (id), house1 (имя), 10000 (цена)
- 9 (id), house1 (имя), 10000 (цена)
и так далее ...Но не это:
- 7 (идентификатор), Книга1 (имя), 120 (цена)
- 7 (идентификатор), book2 (имя), 100 (цена)
- 8 (идентификатор), car1 (имя), 1620 (цена)
- 8 (ID), car2 (имя), 520 (цена)
- 8 (ID), car3 (имя), 5520 (цена)
- 9 (ID), дом1 (имя), 10000 (цена)
- 9 (id), дом2 (имя), 11000 (цена)
- 9 (id), house3 (имя), 15000 (цена)
Так что мой вопрос в том, должен ли я использовать метод @OneToMany? Или я делаю это неправильно?
, если быть честным, я действительно не понимаю, чего вы пытаетесь достичь. можете ли вы предоставить более подробную информацию? возможно, включите классы в вопрос? – giannisapi
Я сделал редактирование. – Laurynas