Hiberante @JoinColumn - PullRequest
       8

Hiberante @JoinColumn

0 голосов
/ 26 марта 2020

У меня есть 2 объекта, во-первых я храню продукты, второй используется для хранения изображения этих продуктов в виде пути к файлу. В приведенном ниже примере я удалил все поля, кроме этого отношения.

Первый класс:

public class Products {

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "image_file_path")
private List<ProductsImages> productsImagesList;

}

Второй класс:

public class ProductsImages {

private String filePath;

}

Итак, я хотел добавить столбец image_file_path в таблицу Products, чтобы он указывал на Id в ProductsImages, но за исключением того, что я получил столбец image_file_path в таблице ProductsImages. Что не так?

1 Ответ

2 голосов
/ 26 марта 2020

Причина, по которой вы получаете столбец в ProductsImages, заключается в том, что вы определили свои отношения как Один ко многим . Если у вас есть много изображений продуктов, соответствующих одному продукту, как вы можете иметь один столбец в продуктах, указывающих на изображение.

Вам необходимо выяснить, есть ли у вас одно изображение или много изображений. Если он у вас есть, вы можете разместить свой столбец в Продуктах, и это не проблема, но тогда вам нужно изменить отношение к OneToOne.

Если вы хотите смоделировать отношения, в которых у вас есть одно изображение по умолчанию , но много других возможных изображений. Затем вам нужно будет отобразить его два раза один раз как OneToMany и один раз как OneToOne, таким образом вы получите один столбец внутри Прибора, где будет стоять изображение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...