У меня есть две таблицы, соединяющиеся с таблицей сопоставления. Тем не менее, я получаю проблему с ограничениями на нуль. Ниже приведено сообщение об ошибке и два сопоставления. Поскольку оба являются многими, то мое предположение заключается в том, что многие могут быть ничему, как я могу сделать так, чтобы либо product_id, либо category_id могли быть нулевыми?Null не разрешено, но должно быть нулевым
Сообщение об ошибке
Caused by: org.h2.jdbc.JdbcBatchUpdateException: NULL not allowed for column "PRODUCT_OPTION_ID"; SQL statement:
insert into ImageMapping (product_id, image_id) values (?, ?) [23502-168]
Категории
@JoinTable(
name = "ImageMapping",
joinColumns = @JoinColumn(name = "category_id"),
inverseJoinColumns = @JoinColumn(name = "image_id")
)
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Set<Image> categoryImageId;
Продукты
@JoinTable(
name="ImageMapping",
joinColumns = @JoinColumn(name = "product_id"),
inverseJoinColumns = @JoinColumn(name = "image_id")
)
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Set<Image> productImageGroup;
Варианты продукта
@JoinTable(
name="ImageMapping",
joinColumns = @JoinColumn(name = "product_option_id"),
inverseJoinColumns = @JoinColumn(name = "image_id")
)
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<Image> productOptionImageGroup;
У вас нет другого столбца с именем 'PRODUCT_OPTION_ID' в таблице« ImageMapping »? – dcernahoschi
Да, ошибка относится к столбцу 'PRODUCT_OPTION_ID', а не к' PRODUCT_ID' или 'IMAGE_ID'. –
Я только что заметил это вчера вечером, но ошибка переключается случайным образом между Product_option_id и Category_id. Я думаю, что это связано с порядком, в котором объекты привязаны, когда таблицы генерируются в H2. Я включил опции продукта. – zmanc