0

マッピング テーブルと結合する 2 つのテーブルがあります。ただし、null 制約の問題が発生しています。以下は、エラー メッセージと 2 つのマッピングです。両方とも manyTomany であるため、多くはなしである可能性があると仮定していますが、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;
4

1 に答える 1